Mercurial > emacs
annotate lisp/allout.el @ 112121:a51d791afefe
ChangeLog fix.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Tue, 04 Jan 2011 23:03:21 -0800 |
parents | 48f5ac42611a |
children | 5a83a0764cb0 |
rev | line source |
---|---|
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
1 ;;; allout.el --- extensive outline mode for use alone and with other modes |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2 |
111740
97a0564526d2
* lisp/allout.el (allout-command-prefix, allout-mode-map): Declare.
Glenn Morris <rgm@gnu.org>
parents:
111552
diff
changeset
|
3 ;; Copyright (C) 1992, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006, |
97a0564526d2
* lisp/allout.el (allout-command-prefix, allout-mode-map): Declare.
Glenn Morris <rgm@gnu.org>
parents:
111552
diff
changeset
|
4 ;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6 ;; Author: Ken Manheimer <ken dot manheimer at gmail dot com> |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
7 ;; Maintainer: Ken Manheimer <ken dot manheimer at gmail dot com> |
79939 | 8 ;; Created: Dec 1991 -- first release to usenet |
111552
4a4fd0374f40
(allout-version): micro increment
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111537
diff
changeset
|
9 ;; Version: 2.2.2 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
10 ;; Keywords: outlines wp languages |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
11 ;; Website: http://myriadicity.net/Sundry/EmacsAllout |
3430 | 12 |
13 ;; This file is part of GNU Emacs. | |
14 | |
94678
ee5932bf781d
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
92337
diff
changeset
|
15 ;; GNU Emacs is free software: you can redistribute it and/or modify |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
16 ;; 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:
92337
diff
changeset
|
17 ;; 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:
92337
diff
changeset
|
18 ;; (at your option) any later version. |
3430 | 19 |
6736
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
20 ;; GNU Emacs is distributed in the hope that it will be useful, |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
23 ;; GNU General Public License for more details. |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
24 |
3e1323443b1a
Fix copying conditions for current GPL version.
Richard M. Stallman <rms@gnu.org>
parents:
5310
diff
changeset
|
25 ;; 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:
92337
diff
changeset
|
26 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
3430 | 27 |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
28 ;;; Commentary: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
29 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
30 ;; Allout outline minor mode provides extensive outline formatting and |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
31 ;; and manipulation beyond standard emacs outline mode. Some features: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
32 ;; |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
33 ;; - Classic outline-mode topic-oriented navigation and exposure adjustment |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
34 ;; - Topic-oriented editing including coherent topic and subtopic |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
35 ;; creation, promotion, demotion, cut/paste across depths, etc. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
36 ;; - Incremental search with dynamic exposure and reconcealment of text |
79939 | 37 ;; - Customizable bullet format -- enables programming-language specific |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
38 ;; outlining, for code-folding editing. (Allout code itself is to try it; |
79939 | 39 ;; formatted as an outline -- do ESC-x eval-buffer in allout.el; but |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
40 ;; emacs local file variables need to be enabled when the |
79939 | 41 ;; file was visited -- see `enable-local-variables'.) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
42 ;; - Configurable per-file initial exposure settings |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
43 ;; - Symmetric-key and key-pair topic encryption, plus symmetric passphrase |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
44 ;; mnemonic support, with verification against an established passphrase |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
45 ;; (using a stashed encrypted dummy string) and user-supplied hint |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
46 ;; maintenance. Encryption is via the Emacs 'epg' library. See |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
47 ;; allout-toggle-current-subtree-encryption docstring. |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
48 ;; - Automatic topic-number maintenance |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
49 ;; - "Hot-spot" operation, for single-keystroke maneuvering and |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
50 ;; exposure control (see the allout-mode docstring) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
51 ;; - Easy rendering of exposed portions into numbered, latex, indented, etc |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
52 ;; outline styles |
79939 | 53 ;; - Careful attention to whitespace -- enabling blank lines between items |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
54 ;; and maintenance of hanging indentation (in paragraph auto-fill and |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
55 ;; across topic promotion and demotion) of topic bodies consistent with |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
56 ;; indentation of their topic header. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
57 ;; |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
58 ;; and more. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
59 ;; |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
60 ;; See the `allout-mode' function's docstring for an introduction to the |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
61 ;; mode. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
62 ;; |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
63 ;; The latest development version and helpful notes are available at |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
64 ;; http://myriadicity.net/Sundry/EmacsAllout . |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
65 ;; |
29490 | 66 ;; The outline menubar additions provide quick reference to many of |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
67 ;; the features, and see the docstring of the variable `allout-init' |
73763
89b9e8184350
(allout-adjust-file-variable, allout-passphrase-verifier-string,
Juanma Barranquero <lekktu@gmail.com>
parents:
73660
diff
changeset
|
68 ;; for instructions on priming your Emacs session for automatic |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
69 ;; activation of allout-mode. |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
70 ;; |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
71 ;; See the docstring of the variables `allout-layout' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
72 ;; `allout-auto-activation' for details on automatic activation of |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
73 ;; `allout-mode' as a minor mode. (It has changed since allout |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
74 ;; 3.x, for those of you that depend on the old method.) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
75 ;; |
79939 | 76 ;; Note -- the lines beginning with `;;;_' are outline topic headers. |
71625 | 77 ;; Just `ESC-x eval-buffer' to give it a whirl. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
78 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
79 ;; ken manheimer (ken dot manheimer at gmail dot com) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
80 |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
81 ;;; Code: |
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
82 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
83 ;;;_* Dependency autoloads |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
84 (require 'overlay) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
85 (eval-when-compile |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
86 ;; Most of the requires here are for stuff covered by autoloads, which |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
87 ;; byte-compiling doesn't trigger. |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
88 (require 'epg) |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
89 (require 'epa) |
105080
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
90 (require 'overlay) |
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
91 ;; `cl' is required for `assert'. `assert' is not covered by a standard |
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
92 ;; autoload, but it is a macro, so that eval-when-compile is sufficient |
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
93 ;; to byte-compile it in, or to do the require when the buffer evalled. |
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
94 (require 'cl) |
37b8e423433c
(top-level): Remove unnecessary progn.
Glenn Morris <rgm@gnu.org>
parents:
101010
diff
changeset
|
95 ) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
96 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
97 ;;;_* USER CUSTOMIZATION VARIABLES: |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
98 |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
99 ;;;_ > defgroup allout, allout-keybindings |
21088 | 100 (defgroup allout nil |
101 "Extensive outline mode for use alone and with other modes." | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
102 :prefix "allout-" |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
103 :group 'outlines) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
104 (defgroup allout-keybindings nil |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
105 "Allout outline mode keyboard bindings configuration." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
106 :group 'allout) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
107 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
108 ;;;_ + Layout, Mode, and Topic Header Configuration |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
109 |
111740
97a0564526d2
* lisp/allout.el (allout-command-prefix, allout-mode-map): Declare.
Glenn Morris <rgm@gnu.org>
parents:
111552
diff
changeset
|
110 (defvar allout-command-prefix) ; defined below |
97a0564526d2
* lisp/allout.el (allout-command-prefix, allout-mode-map): Declare.
Glenn Morris <rgm@gnu.org>
parents:
111552
diff
changeset
|
111 (defvar allout-mode-map) |
97a0564526d2
* lisp/allout.el (allout-command-prefix, allout-mode-map): Declare.
Glenn Morris <rgm@gnu.org>
parents:
111552
diff
changeset
|
112 |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
113 ;;;_ > allout-keybindings incidentals: |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
114 ;;;_ > allout-bind-keys &optional varname value |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
115 (defun allout-bind-keys (&optional varname value) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
116 "Rebuild the `allout-mode-map' according to the keybinding specs. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
117 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
118 Useful standalone, to init the map, or in customizing the |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
119 respective allout-mode keybinding variables, `allout-command-prefix', |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
120 `allout-prefixed-keybindings', and `allout-unprefixed-keybindings'" |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
121 ;; Set the customization variable, if any: |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
122 (when varname |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
123 (set-default varname value)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
124 (let ((map (make-sparse-keymap)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
125 key) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
126 (when (boundp 'allout-prefixed-keybindings) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
127 ;; Be tolerant of the moments when the variables are first being defined. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
128 (dolist (entry allout-prefixed-keybindings) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
129 (define-key map |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
130 ;; XXX vector vs non-vector key descriptions? |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
131 (vconcat allout-command-prefix |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
132 (car (read-from-string (car entry)))) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
133 (cadr entry)))) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
134 (when (boundp 'allout-unprefixed-keybindings) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
135 (dolist (entry allout-unprefixed-keybindings) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
136 (define-key map (car (read-from-string (car entry))) (cadr entry)))) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
137 (setq allout-mode-map map) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
138 map |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
139 )) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
140 ;;;_ = allout-command-prefix |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
141 (defcustom allout-command-prefix "\C-c " |
100171 | 142 "Key sequence to be used as prefix for outline mode command key bindings. |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
143 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
144 Default is '\C-c<space>'; just '\C-c' is more short-and-sweet, if you're |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
145 willing to let allout use a bunch of \C-c keybindings." |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
146 :type 'string |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
147 :group 'allout-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
148 :set 'allout-bind-keys) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
149 ;;;_ = allout-keybindings-binding |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
150 (define-widget 'allout-keybindings-binding 'lazy |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
151 "Structure of allout keybindings customization items." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
152 :type '(repeat |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
153 (list (string :tag "Key" :value "[(meta control shift ?f)]") |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
154 (function :tag "Function name" |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
155 :value allout-forward-current-level)))) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
156 ;;;_ = allout-prefixed-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
157 (defcustom allout-prefixed-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
158 '(("[(control ?n)]" allout-next-visible-heading) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
159 ("[(control ?p)]" allout-previous-visible-heading) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
160 ;; ("[(control ?u)]" allout-up-current-level) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
161 ("[(control ?f)]" allout-forward-current-level) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
162 ("[(control ?b)]" allout-backward-current-level) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
163 ("[(control ?a)]" allout-beginning-of-current-entry) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
164 ("[(control ?e)]" allout-end-of-entry) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
165 ("[(control ?i)]" allout-show-children) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
166 ("[(control ?i)]" allout-show-children) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
167 ("[(control ?s)]" allout-show-current-subtree) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
168 ("[(control ?t)]" allout-toggle-current-subtree-exposure) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
169 ("[(control ?h)]" allout-hide-current-subtree) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
170 ("[?h]" allout-hide-current-subtree) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
171 ("[(control ?o)]" allout-show-current-entry) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
172 ("[?!]" allout-show-all) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
173 ("[?x]" allout-toggle-current-subtree-encryption) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
174 ("[? ]" allout-open-sibtopic) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
175 ("[?.]" allout-open-subtopic) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
176 ("[?,]" allout-open-supertopic) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
177 ("[?']" allout-shift-in) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
178 ("[?>]" allout-shift-in) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
179 ("[?<]" allout-shift-out) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
180 ("[(control ?m)]" allout-rebullet-topic) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
181 ("[?*]" allout-rebullet-current-heading) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
182 ("[?']" allout-number-siblings) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
183 ("[(control ?k)]" allout-kill-topic) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
184 ("[??]" allout-copy-topic-as-kill) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
185 ("[?@]" allout-resolve-xref) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
186 ("[?=?c]" allout-copy-exposed-to-buffer) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
187 ("[?=?i]" allout-indented-exposed-to-buffer) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
188 ("[?=?t]" allout-latexify-exposed) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
189 ("[?=?p]" allout-flatten-exposed-to-buffer) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
190 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
191 "Allout-mode key bindings that are prefixed with `allout-command-prefix'. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
192 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
193 See `allout-unprefixed-keybindings' for the list of keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
194 that are not prefixed. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
195 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
196 Use vector format for the keys: |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
197 - put literal keys after a '?' question mark, eg: '?a', '?.' |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
198 - enclose control, shift, or meta-modified keys as sequences within |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
199 parentheses, with the literal key, as above, preceded by the name(s) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
200 of the modifers, eg: [(control ?a)] |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
201 See the existing keys for examples. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
202 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
203 Functions can be bound to multiple keys, but binding keys to |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
204 multiple functions will not work - the last binding for a key |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
205 prevails." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
206 :type 'allout-keybindings-binding |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
207 :group 'allout-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
208 :set 'allout-bind-keys |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
209 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
210 ;;;_ = allout-unprefixed-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
211 (defcustom allout-unprefixed-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
212 '(("[(control ?k)]" allout-kill-line) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
213 ("[??(meta ?k)]" allout-copy-line-as-kill) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
214 ("[(control ?y)]" allout-yank) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
215 ("[??(meta ?y)]" allout-yank-pop) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
216 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
217 "Allout-mode functions bound to keys without any added prefix. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
218 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
219 This is in contrast to the majority of allout-mode bindings on |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
220 `allout-prefixed-bindings', whose bindings are created with a |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
221 preceeding command key. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
222 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
223 Use vector format for the keys: |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
224 - put literal keys after a '?' question mark, eg: '?a', '?.' |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
225 - enclose control, shift, or meta-modified keys as sequences within |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
226 parentheses, with the literal key, as above, preceded by the name(s) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
227 of the modifers, eg: [(control ?a)] |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
228 See the existing keys for examples." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
229 :type 'allout-keybindings-binding |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
230 :group 'allout-keybindings |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
231 :set 'allout-bind-keys |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
232 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
233 |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
234 ;;;_ = allout-preempt-trailing-ctrl-h |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
235 (defcustom allout-preempt-trailing-ctrl-h nil |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
236 "Use <prefix>-\C-h, instead of leaving it for describe-prefix-bindings?" |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
237 :type 'boolean |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
238 :group 'allout) |
88056 | 239 |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
240 ;;;_ = allout-keybindings-list |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
241 ;;; You have to reactivate allout-mode to change this var's current setting. |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
242 (defvar allout-keybindings-list () |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
243 "*List of `allout-mode' key / function bindings, for `allout-mode-map'. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
244 String or vector key will be prefaced with `allout-command-prefix', |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
245 unless optional third, non-nil element is present.") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
246 (setq allout-keybindings-list |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
247 '( |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
248 ; Motion commands: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
249 ("\C-n" allout-next-visible-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
250 ("\C-p" allout-previous-visible-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
251 ("\C-u" allout-up-current-level) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
252 ("\C-f" allout-forward-current-level) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
253 ("\C-b" allout-backward-current-level) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
254 ("\C-a" allout-beginning-of-current-entry) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
255 ("\C-e" allout-end-of-entry) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
256 ; Exposure commands: |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
257 ([(control i)] allout-show-children) ; xemacs translates "\C-i" to tab |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
258 ("\C-i" allout-show-children) ; but we still need this for hotspot |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
259 ("\C-s" allout-show-current-subtree) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
260 ;; binding to \C-h is included if allout-preempt-trailing-ctrl-h, |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
261 ;; so user controls whether or not to preempt the conventional ^H |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
262 ;; binding to help-command. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
263 ("\C-h" allout-hide-current-subtree) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
264 ("\C-t" allout-toggle-current-subtree-exposure) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
265 ("h" allout-hide-current-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
266 ("\C-o" allout-show-current-entry) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
267 ("!" allout-show-all) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
268 ("x" allout-toggle-current-subtree-encryption) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
269 ; Alteration commands: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
270 (" " allout-open-sibtopic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
271 ("." allout-open-subtopic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
272 ("," allout-open-supertopic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
273 ("'" allout-shift-in) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
274 (">" allout-shift-in) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
275 ("<" allout-shift-out) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
276 ("\C-m" allout-rebullet-topic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
277 ("*" allout-rebullet-current-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
278 ("#" allout-number-siblings) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
279 ("\C-k" allout-kill-line t) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
280 ([?\M-k] allout-copy-line-as-kill t) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
281 ("\C-y" allout-yank t) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
282 ([?\M-y] allout-yank-pop t) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
283 ("\C-k" allout-kill-topic) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
284 ([?\M-k] allout-copy-topic-as-kill) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
285 ; Miscellaneous commands: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
286 ;([?\C-\ ] allout-mark-topic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
287 ("@" allout-resolve-xref) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
288 ("=c" allout-copy-exposed-to-buffer) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
289 ("=i" allout-indented-exposed-to-buffer) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
290 ("=t" allout-latexify-exposed) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
291 ("=p" allout-flatten-exposed-to-buffer))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
292 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
293 ;;;_ = allout-auto-activation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
294 (defcustom allout-auto-activation nil |
100171 | 295 "Regulates auto-activation modality of allout outlines -- see `allout-init'. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
296 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
297 Setq-default by `allout-init' to regulate whether or not allout |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
298 outline mode is automatically activated when the buffer-specific |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
299 variable `allout-layout' is non-nil, and whether or not the layout |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
300 dictated by `allout-layout' should be imposed on mode activation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
301 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
302 With value t, auto-mode-activation and auto-layout are enabled. |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
303 \(This also depends on `allout-find-file-hook' being installed in |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
304 `find-file-hook', which is also done by `allout-init'.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
305 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
306 With value `ask', auto-mode-activation is enabled, and endorsement for |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
307 performing auto-layout is asked of the user each time. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
308 |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
309 With value `activate', only auto-mode-activation is enabled, |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
310 auto-layout is not. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
311 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
312 With value nil, neither auto-mode-activation nor auto-layout are |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
313 enabled. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
314 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
315 See the docstring for `allout-init' for the proper interface to |
29490 | 316 this variable." |
317 :type '(choice (const :tag "On" t) | |
318 (const :tag "Ask about layout" "ask") | |
319 (const :tag "Mode only" "activate") | |
320 (const :tag "Off" nil)) | |
321 :group 'allout) | |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
322 ;;;_ = allout-default-layout |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
323 (defcustom allout-default-layout '(-2 : 0) |
100171 | 324 "Default allout outline layout specification. |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
325 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
326 This setting specifies the outline exposure to use when |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
327 `allout-layout' has the local value `t'. This docstring describes the |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
328 layout specifications. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
329 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
330 A list value specifies a default layout for the current buffer, |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
331 to be applied upon activation of `allout-mode'. Any non-nil |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
332 value will automatically trigger `allout-mode', provided |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
333 `allout-init' has been called to enable this behavior. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
334 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
335 The types of elements in the layout specification are: |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
336 |
79939 | 337 INTEGER -- dictate the relative depth to open the corresponding topic(s), |
338 where: | |
339 -- negative numbers force the topic to be closed before opening | |
340 to the absolute value of the number, so all siblings are open | |
341 only to that level. | |
342 -- positive numbers open to the relative depth indicated by the | |
343 number, but do not force already opened subtopics to be closed. | |
344 -- 0 means to close topic -- hide all subitems. | |
345 : -- repeat spec -- apply the preceeding element to all siblings at | |
346 current level, *up to* those siblings that would be covered by specs | |
347 following the `:' on the list. Ie, apply to all topics at level but | |
348 trailing ones accounted for by trailing specs. (Only the first of | |
349 multiple colons at the same level is honored -- later ones are ignored.) | |
350 * -- completely exposes the topic, including bodies | |
351 + -- exposes all subtopics, but not the bodies | |
352 - -- exposes the body of the corresponding topic, but not subtopics | |
353 LIST -- a nested layout spec, to be applied intricately to its | |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
354 corresponding item(s) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
355 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
356 Examples: |
79939 | 357 (-2 : 0) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
358 Collapse the top-level topics to show their children and |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
359 grandchildren, but completely collapse the final top-level topic. |
79939 | 360 (-1 () : 1 0) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
361 Close the first topic so only the immediate subtopics are shown, |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
362 leave the subsequent topics exposed as they are until the second |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
363 second to last topic, which is exposed at least one level, and |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
364 completely close the last topic. |
79939 | 365 (-2 : -1 *) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
366 Expose children and grandchildren of all topics at current |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
367 level except the last two; expose children of the second to |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
368 last and completely expose the last one, including its subtopics. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
369 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
370 See `allout-expose-topic' for more about the exposure process. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
371 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
372 Also, allout's mode-specific provisions will make topic prefixes default |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
373 to the comment-start string, if any, of the language of the file. This |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
374 is modulo the setting of `allout-use-mode-specific-leader', which see." |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
375 :type 'allout-layout-type |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
376 :group 'allout) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
377 ;;;_ : allout-layout-type |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
378 (define-widget 'allout-layout-type 'lazy |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
379 "Allout layout format customization basic building blocks." |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
380 :type '(repeat |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
381 (choice (integer :tag "integer (<= zero is strict)") |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
382 (const :tag ": (repeat prior)" :) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
383 (const :tag "* (completely expose)" *) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
384 (const :tag "+ (expose all offspring, headlines only)" +) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
385 (const :tag "- (expose topic body but not offspring)" -) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
386 (allout-layout-type :tag "<Nested layout>")))) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
387 |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
388 ;;;_ = allout-inhibit-auto-fill |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
389 (defcustom allout-inhibit-auto-fill nil |
100171 | 390 "If non-nil, auto-fill will be inhibited in the allout buffers. |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
391 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
392 You can customize this setting to set it for all allout buffers, or set it |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
393 in individual buffers if you want to inhibit auto-fill only in particular |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
394 buffers. (You could use a function on `allout-mode-hook' to inhibit |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
395 auto-fill according, eg, to the major mode.) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
396 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
397 If you don't set this and auto-fill-mode is enabled, allout will use the |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
398 value that `normal-auto-fill-function', if any, when allout mode starts, or |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
399 else allout's special hanging-indent maintaining auto-fill function, |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
400 `allout-auto-fill'." |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
401 :type 'boolean |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
402 :group 'allout) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
403 (make-variable-buffer-local 'allout-inhibit-auto-fill) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
404 ;;;_ = allout-use-hanging-indents |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
405 (defcustom allout-use-hanging-indents t |
100171 | 406 "If non-nil, topic body text auto-indent defaults to indent of the header. |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
407 Ie, it is indented to be just past the header prefix. This is |
88056 | 408 relevant mostly for use with `indented-text-mode', or other situations |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
409 where auto-fill occurs." |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
410 :type 'boolean |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
411 :group 'allout) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
412 (make-variable-buffer-local 'allout-use-hanging-indents) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
413 ;;;###autoload |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
414 (put 'allout-use-hanging-indents 'safe-local-variable |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
415 (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
416 ;;;_ = allout-reindent-bodies |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
417 (defcustom allout-reindent-bodies (if allout-use-hanging-indents |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
418 'text) |
100171 | 419 "Non-nil enables auto-adjust of topic body hanging indent with depth shifts. |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
420 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
421 When active, topic body lines that are indented even with or beyond |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
422 their topic header are reindented to correspond with depth shifts of |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
423 the header. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
424 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
425 A value of t enables reindent in non-programming-code buffers, ie |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
426 those that do not have the variable `comment-start' set. A value of |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
427 `force' enables reindent whether or not `comment-start' is set." |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
428 :type '(choice (const nil) (const t) (const text) (const force)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
429 :group 'allout) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
430 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
431 (make-variable-buffer-local 'allout-reindent-bodies) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
432 ;;;###autoload |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
433 (put 'allout-reindent-bodies 'safe-local-variable |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
434 '(lambda (x) (memq x '(nil t text force)))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
435 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
436 ;;;_ = allout-show-bodies |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
437 (defcustom allout-show-bodies nil |
100171 | 438 "If non-nil, show entire body when exposing a topic, rather than |
29490 | 439 just the header." |
440 :type 'boolean | |
441 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
442 (make-variable-buffer-local 'allout-show-bodies) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
443 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
444 (put 'allout-show-bodies 'safe-local-variable |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
445 (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
446 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
447 ;;;_ = allout-beginning-of-line-cycles |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
448 (defcustom allout-beginning-of-line-cycles t |
100171 | 449 "If non-nil, \\[allout-beginning-of-line] will cycle through smart-placement options. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
450 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
451 Cycling only happens on when the command is repeated, not when it |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
452 follows a different command. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
453 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
454 Smart-placement means that repeated calls to this function will |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
455 advance as follows: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
456 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
457 - if the cursor is on a non-headline body line and not on the first column: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
458 then it goes to the first column |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
459 - if the cursor is on the first column of a non-headline body line: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
460 then it goes to the start of the headline within the item body |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
461 - if the cursor is on the headline and not the start of the headline: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
462 then it goes to the start of the headline |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
463 - if the cursor is on the start of the headline: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
464 then it goes to the bullet character (for hotspot navigation) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
465 - if the cursor is on the bullet character: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
466 then it goes to the first column of that line (the headline) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
467 - if the cursor is on the first column of the headline: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
468 then it goes to the start of the headline within the item body. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
469 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
470 In this fashion, you can use the beginning-of-line command to do |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
471 its normal job and then, when repeated, advance through the |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
472 entry, cycling back to start. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
473 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
474 If this configuration variable is nil, then the cursor is just |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
475 advanced to the beginning of the line and remains there on |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
476 repeated calls." |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
477 :type 'boolean :group 'allout) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
478 ;;;_ = allout-end-of-line-cycles |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
479 (defcustom allout-end-of-line-cycles t |
100171 | 480 "If non-nil, \\[allout-end-of-line] will cycle through smart-placement options. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
481 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
482 Cycling only happens on when the command is repeated, not when it |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
483 follows a different command. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
484 |
79939 | 485 Smart placement means that repeated calls to this function will |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
486 advance as follows: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
487 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
488 - if the cursor is not on the end-of-line, |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
489 then it goes to the end-of-line |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
490 - if the cursor is on the end-of-line but not the end-of-entry, |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
491 then it goes to the end-of-entry, exposing it if necessary |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
492 - if the cursor is on the end-of-entry, |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
493 then it goes to the end of the head line |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
494 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
495 In this fashion, you can use the end-of-line command to do its |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
496 normal job and then, when repeated, advance through the entry, |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
497 cycling back to start. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
498 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
499 If this configuration variable is nil, then the cursor is just |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
500 advanced to the end of the line and remains there on repeated |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
501 calls." |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
502 :type 'boolean :group 'allout) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
503 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
504 ;;;_ = allout-header-prefix |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
505 (defcustom allout-header-prefix "." |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
506 ;; this string is treated as literal match. it will be `regexp-quote'd, so |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
507 ;; one cannot use regular expressions to match varying header prefixes. |
100171 | 508 "Leading string which helps distinguish topic headers. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
509 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
510 Outline topic header lines are identified by a leading topic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
511 header prefix, which mostly have the value of this var at their front. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
512 Level 1 topics are exceptions. They consist of only a single |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
513 character, which is typically set to the `allout-primary-bullet'." |
21088 | 514 :type 'string |
515 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
516 (make-variable-buffer-local 'allout-header-prefix) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
517 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
518 (put 'allout-header-prefix 'safe-local-variable 'stringp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
519 ;;;_ = allout-primary-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
520 (defcustom allout-primary-bullet "*" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
521 "Bullet used for top-level outline topics. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
522 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
523 Outline topic header lines are identified by a leading topic header |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
524 prefix, which is concluded by bullets that includes the value of this |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
525 var and the respective allout-*-bullets-string vars. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
526 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
527 The value of an asterisk (`*') provides for backwards compatibility |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
528 with the original Emacs outline mode. See `allout-plain-bullets-string' |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
529 and `allout-distinctive-bullets-string' for the range of available |
21088 | 530 bullets." |
531 :type 'string | |
532 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
533 (make-variable-buffer-local 'allout-primary-bullet) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
534 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
535 (put 'allout-primary-bullet 'safe-local-variable 'stringp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
536 ;;;_ = allout-plain-bullets-string |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
537 (defcustom allout-plain-bullets-string ".," |
100171 | 538 "The bullets normally used in outline topic prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
539 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
540 See `allout-distinctive-bullets-string' for the other kind of |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
541 bullets. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
542 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
543 DO NOT include the close-square-bracket, `]', as a bullet. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
544 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
545 Outline mode has to be reactivated in order for changes to the value |
21088 | 546 of this var to take effect." |
547 :type 'string | |
548 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
549 (make-variable-buffer-local 'allout-plain-bullets-string) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
550 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
551 (put 'allout-plain-bullets-string 'safe-local-variable 'stringp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
552 ;;;_ = allout-distinctive-bullets-string |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
553 (defcustom allout-distinctive-bullets-string "*+-=>()[{}&!?#%\"X@$~_\\:;^" |
100171 | 554 "Persistent outline header bullets used to distinguish special topics. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
555 |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
556 These bullets are distinguish topics with particular character. |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
557 They are not used by default in the topic creation routines, but |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
558 are offered as options when you modify topic creation with a |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
559 universal argument \(\\[universal-argument]), or during rebulleting \(\\[allout-rebullet-current-heading]). |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
560 |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
561 Distinctive bullets are not cycled when topics are shifted or |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
562 otherwise automatically rebulleted, so their marking is |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
563 persistent until deliberately changed. Their significance is |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
564 purely by convention, however. Some conventions suggest |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
565 themselves: |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
566 |
79939 | 567 `(' - open paren -- an aside or incidental point |
568 `?' - question mark -- uncertain or outright question | |
569 `!' - exclamation point/bang -- emphatic | |
570 `[' - open square bracket -- meta-note, about item instead of item's subject | |
571 `\"' - double quote -- a quotation or other citation | |
572 `=' - equal sign -- an assignement, equating a name with some connotation | |
573 `^' - carat -- relates to something above | |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
574 |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
575 Some are more elusive, but their rationale may be recognizable: |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
576 |
79939 | 577 `+' - plus -- pending consideration, completion |
578 `_' - underscore -- done, completed | |
579 `&' - ampersand -- addendum, furthermore | |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
580 |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
581 \(Some other non-plain bullets have special meaning to the |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
582 software. By default: |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
583 |
79939 | 584 `~' marks encryptable topics -- see `allout-topic-encryption-bullet' |
585 `#' marks auto-numbered bullets -- see `allout-numbered-bullet'.) | |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
586 |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
587 See `allout-plain-bullets-string' for the standard, alternating |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
588 bullets. |
29490 | 589 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
590 You must run `set-allout-regexp' in order for outline mode to |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
591 adopt changes of this value. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
592 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
593 DO NOT include the close-square-bracket, `]', on either of the bullet |
21088 | 594 strings." |
595 :type 'string | |
596 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
597 (make-variable-buffer-local 'allout-distinctive-bullets-string) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
598 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
599 (put 'allout-distinctive-bullets-string 'safe-local-variable 'stringp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
600 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
601 ;;;_ = allout-use-mode-specific-leader |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
602 (defcustom allout-use-mode-specific-leader t |
100171 | 603 "When non-nil, use mode-specific topic-header prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
604 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
605 Allout outline mode will use the mode-specific `allout-mode-leaders' or |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
606 comment-start string, if any, to lead the topic prefix string, so topic |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
607 headers look like comments in the programming language. It will also use |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
608 the comment-start string, with an '_' appended, for `allout-primary-bullet'. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
609 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
610 String values are used as literals, not regular expressions, so |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
611 do not escape any regulare-expression characters. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
612 |
50855
31ce4fcda3d8
(allout-auto-activation, allout-use-mode-specific-leader)
Juanma Barranquero <lekktu@gmail.com>
parents:
49966
diff
changeset
|
613 Value t means to first check for assoc value in `allout-mode-leaders' |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
614 alist, then use comment-start string, if any, then use default (`.'). |
29490 | 615 \(See note about use of comment-start strings, below.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
616 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
617 Set to the symbol for either of `allout-mode-leaders' or |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
618 `comment-start' to use only one of them, respectively. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
619 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
620 Value nil means to always use the default (`.') and leave |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
621 `allout-primary-bullet' unaltered. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
622 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
623 comment-start strings that do not end in spaces are tripled in |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
624 the header-prefix, and an `_' underscore is tacked on the end, to |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
625 distinguish them from regular comment strings. comment-start |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
626 strings that do end in spaces are not tripled, but an underscore |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
627 is substituted for the space. [This presumes that the space is |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
628 for appearance, not comment syntax. You can use |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
629 `allout-mode-leaders' to override this behavior, when |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
630 undesired.]" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
631 :type '(choice (const t) (const nil) string |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
632 (const allout-mode-leaders) |
21088 | 633 (const comment-start)) |
634 :group 'allout) | |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
635 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
636 (put 'allout-use-mode-specific-leader 'safe-local-variable |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
637 '(lambda (x) (or (memq x '(t nil allout-mode-leaders comment-start)) |
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
638 (stringp x)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
639 ;;;_ = allout-mode-leaders |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
640 (defvar allout-mode-leaders '() |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
641 "Specific allout-prefix leading strings per major modes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
642 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
643 Use this if the mode's comment-start string isn't what you |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
644 prefer, or if the mode lacks a comment-start string. See |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
645 `allout-use-mode-specific-leader' for more details. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
646 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
647 If you're constructing a string that will comment-out outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
648 structuring so it can be included in program code, append an extra |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
649 character, like an \"_\" underscore, to distinguish the lead string |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
650 from regular comments that start at the beginning-of-line.") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
651 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
652 ;;;_ = allout-old-style-prefixes |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
653 (defcustom allout-old-style-prefixes nil |
100171 | 654 "When non-nil, use only old-and-crusty `outline-mode' `*' topic prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
655 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
656 Non-nil restricts the topic creation and modification |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
657 functions to asterix-padded prefixes, so they look exactly |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
658 like the original Emacs-outline style prefixes. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
659 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
660 Whatever the setting of this variable, both old and new style prefixes |
21088 | 661 are always respected by the topic maneuvering functions." |
662 :type 'boolean | |
663 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
664 (make-variable-buffer-local 'allout-old-style-prefixes) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
665 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
666 (put 'allout-old-style-prefixes 'safe-local-variable |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
667 (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil))))) |
79939 | 668 ;;;_ = allout-stylish-prefixes -- alternating bullets |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
669 (defcustom allout-stylish-prefixes t |
100171 | 670 "Do fancy stuff with topic prefix bullets according to level, etc. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
671 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
672 Non-nil enables topic creation, modification, and repositioning |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
673 functions to vary the topic bullet char (the char that marks the topic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
674 depth) just preceding the start of the topic text) according to level. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
675 Otherwise, only asterisks (`*') and distinctive bullets are used. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
676 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
677 This is how an outline can look (but sans indentation) with stylish |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
678 prefixes: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
679 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
680 * Top level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
681 .* A topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
682 . + One level 3 subtopic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
683 . . One level 4 subtopic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
684 . . A second 4 subtopic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
685 . + Another level 3 subtopic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
686 . #1 A numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
687 . #2 Another |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
688 . ! Another level 4 subtopic with a different distinctive bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
689 . #4 And another numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
690 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
691 This would be an outline with stylish prefixes inhibited (but the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
692 numbered and other distinctive bullets retained): |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
693 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
694 * Top level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
695 .* A topic |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
696 . * One level 3 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
697 . * One level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
698 . * A second 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
699 . * Another level 3 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
700 . #1 A numbered level 4 subtopic |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
701 . #2 Another |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
702 . ! Another level 4 subtopic with a different distinctive bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
703 . #4 And another numbered level 4 subtopic |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
704 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
705 Stylish and constant prefixes (as well as old-style prefixes) are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
706 always respected by the topic maneuvering functions, regardless of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
707 this variable setting. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
708 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
709 The setting of this var is not relevant when `allout-old-style-prefixes' |
21088 | 710 is non-nil." |
711 :type 'boolean | |
712 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
713 (make-variable-buffer-local 'allout-stylish-prefixes) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
714 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
715 (put 'allout-stylish-prefixes 'safe-local-variable |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
716 (if (fboundp 'booleanp) 'booleanp '(lambda (x) (member x '(t nil))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
717 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
718 ;;;_ = allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
719 (defcustom allout-numbered-bullet "#" |
100171 | 720 "String designating bullet of topics that have auto-numbering; nil for none. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
721 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
722 Topics having this bullet have automatic maintenance of a sibling |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
723 sequence-number tacked on, just after the bullet. Conventionally set |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
724 to \"#\", you can set it to a bullet of your choice. A nil value |
21088 | 725 disables numbering maintenance." |
726 :type '(choice (const nil) string) | |
727 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
728 (make-variable-buffer-local 'allout-numbered-bullet) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
729 ;;;###autoload |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
730 (put 'allout-numbered-bullet 'safe-local-variable |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
731 (if (fboundp 'string-or-null-p) |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
732 'string-or-null-p |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
733 '(lambda (x) (or (stringp x) (null x))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
734 ;;;_ = allout-file-xref-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
735 (defcustom allout-file-xref-bullet "@" |
100171 | 736 "Bullet signifying file cross-references, for `allout-resolve-xref'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
737 |
29490 | 738 Set this var to the bullet you want to use for file cross-references." |
21088 | 739 :type '(choice (const nil) string) |
740 :group 'allout) | |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
741 ;;;###autoload |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
742 (put 'allout-file-xref-bullet 'safe-local-variable |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
743 (if (fboundp 'string-or-null-p) |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
744 'string-or-null-p |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
745 '(lambda (x) (or (stringp x) (null x))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
746 ;;;_ = allout-presentation-padding |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
747 (defcustom allout-presentation-padding 2 |
100171 | 748 "Presentation-format white-space padding factor, for greater indent." |
29490 | 749 :type 'integer |
750 :group 'allout) | |
751 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
752 (make-variable-buffer-local 'allout-presentation-padding) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
753 ;;;###autoload |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
754 (put 'allout-presentation-padding 'safe-local-variable 'integerp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
755 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
756 ;;;_ = allout-abbreviate-flattened-numbering |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
757 (defcustom allout-abbreviate-flattened-numbering nil |
100171 | 758 "If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic |
29490 | 759 numbers to minimal amount with some context. Otherwise, entire |
760 numbers are always used." | |
761 :type 'boolean | |
762 :group 'allout) | |
763 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
764 ;;;_ + LaTeX formatting |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
765 ;;;_ - allout-number-pages |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
766 (defcustom allout-number-pages nil |
100171 | 767 "Non-nil turns on page numbering for LaTeX formatting of an outline." |
21088 | 768 :type 'boolean |
769 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
770 ;;;_ - allout-label-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
771 (defcustom allout-label-style "\\large\\bf" |
100171 | 772 "Font and size of labels for LaTeX formatting of an outline." |
21088 | 773 :type 'string |
774 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
775 ;;;_ - allout-head-line-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
776 (defcustom allout-head-line-style "\\large\\sl " |
100171 | 777 "Font and size of entries for LaTeX formatting of an outline." |
21088 | 778 :type 'string |
779 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
780 ;;;_ - allout-body-line-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
781 (defcustom allout-body-line-style " " |
100171 | 782 "Font and size of entries for LaTeX formatting of an outline." |
21088 | 783 :type 'string |
784 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
785 ;;;_ - allout-title-style |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
786 (defcustom allout-title-style "\\Large\\bf" |
100171 | 787 "Font and size of titles for LaTeX formatting of an outline." |
21088 | 788 :type 'string |
789 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
790 ;;;_ - allout-title |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
791 (defcustom allout-title '(or buffer-file-name (buffer-name)) |
100171 | 792 "Expression to be evaluated to determine the title for LaTeX |
21088 | 793 formatted copy." |
794 :type 'sexp | |
795 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
796 ;;;_ - allout-line-skip |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
797 (defcustom allout-line-skip ".05cm" |
100171 | 798 "Space between lines for LaTeX formatting of an outline." |
21088 | 799 :type 'string |
800 :group 'allout) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
801 ;;;_ - allout-indent |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
802 (defcustom allout-indent ".3cm" |
100171 | 803 "LaTeX formatted depth-indent spacing." |
21088 | 804 :type 'string |
805 :group 'allout) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
806 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
807 ;;;_ + Topic encryption |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
808 ;;;_ = allout-encryption group |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
809 (defgroup allout-encryption nil |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
810 "Settings for topic encryption features of allout outliner." |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
811 :group 'allout) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
812 ;;;_ = allout-topic-encryption-bullet |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
813 (defcustom allout-topic-encryption-bullet "~" |
100171 | 814 "Bullet signifying encryption of the entry's body." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
815 :type '(choice (const nil) string) |
92337
a1a12ed4e5e2
(allout-topic-encryption-bullet)
Glenn Morris <rgm@gnu.org>
parents:
88056
diff
changeset
|
816 :version "22.1" |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
817 :group 'allout-encryption) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
818 ;;;_ = allout-encrypt-unencrypted-on-saves |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
819 (defcustom allout-encrypt-unencrypted-on-saves t |
100171 | 820 "When saving, should topics pending encryption be encrypted? |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
821 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
822 The idea is to prevent file-system exposure of any un-encrypted stuff, and |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
823 mostly covers both deliberate file writes and auto-saves. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
824 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
825 - Yes: encrypt all topics pending encryption, even if it's the one |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
826 currently being edited. (In that case, the currently edited topic |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
827 will be automatically decrypted before any user interaction, so they |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
828 can continue editing but the copy on the file system will be |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
829 encrypted.) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
830 Auto-saves will use the \"All except current topic\" mode if this |
79939 | 831 one is selected, to avoid practical difficulties -- see below. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
832 - All except current topic: skip the topic currently being edited, even if |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
833 it's pending encryption. This may expose the current topic on the |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
834 file sytem, but avoids the nuisance of prompts for the encryption |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
835 passphrase in the middle of editing for, eg, autosaves. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
836 This mode is used for auto-saves for both this option and \"Yes\". |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
837 - No: leave it to the user to encrypt any unencrypted topics. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
838 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
839 For practical reasons, auto-saves always use the 'except-current policy |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
840 when auto-encryption is enabled. (Otherwise, spurious passphrase prompts |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
841 and unavoidable timing collisions are too disruptive.) If security for a |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
842 file requires that even the current topic is never auto-saved in the clear, |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
843 disable auto-saves for that file." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
844 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
845 :type '(choice (const :tag "Yes" t) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
846 (const :tag "All except current topic" except-current) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
847 (const :tag "No" nil)) |
92337
a1a12ed4e5e2
(allout-topic-encryption-bullet)
Glenn Morris <rgm@gnu.org>
parents:
88056
diff
changeset
|
848 :version "22.1" |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
849 :group 'allout-encryption) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
850 (make-variable-buffer-local 'allout-encrypt-unencrypted-on-saves) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
851 |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
852 ;;;_ + Developer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
853 ;;;_ = allout-developer group |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
854 (defgroup allout-developer nil |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
855 "Allout settings developers care about, including topic encryption and more." |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
856 :group 'allout) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
857 ;;;_ = allout-run-unit-tests-on-load |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
858 (defcustom allout-run-unit-tests-on-load nil |
100171 | 859 "When non-nil, unit tests will be run at end of loading the allout module. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
860 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
861 Generally, allout code developers are the only ones who'll want to set this. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
862 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
863 \(If set, this makes it an even better practice to exercise changes by |
71915
9315116570f0
(allout-run-unit-tests-on-load): Rectified docstring grammar.
Nick Roberts <nickrob@snap.net.nz>
parents:
71893
diff
changeset
|
864 doing byte-compilation with a repeat count, so the file is loaded after |
9315116570f0
(allout-run-unit-tests-on-load): Rectified docstring grammar.
Nick Roberts <nickrob@snap.net.nz>
parents:
71893
diff
changeset
|
865 compilation.) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
866 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
867 See `allout-run-unit-tests' to see what's run." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
868 :type 'boolean |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
869 :group 'allout-developer) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
870 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
871 ;;;_ + Miscellaneous customization |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
872 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
873 ;;;_ = allout-enable-file-variable-adjustment |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
874 (defcustom allout-enable-file-variable-adjustment t |
100171 | 875 "If non-nil, some allout outline actions edit Emacs local file var text. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
876 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
877 This can range from changes to existing entries, addition of new ones, |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
878 and creation of a new local variables section when necessary. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
879 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
880 Emacs file variables adjustments are also inhibited if `enable-local-variables' |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
881 is nil. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
882 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
883 Operations potentially causing edits include allout encryption routines. |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
884 For details, see `allout-toggle-current-subtree-encryption's docstring." |
21088 | 885 :type 'boolean |
886 :group 'allout) | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
887 (make-variable-buffer-local 'allout-enable-file-variable-adjustment) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
888 |
79939 | 889 ;;;_* CODE -- no user customizations below. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
890 |
29490 | 891 ;;;_ #1 Internal Outline Formatting and Configuration |
892 ;;;_ : Version | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
893 ;;;_ = allout-version |
111552
4a4fd0374f40
(allout-version): micro increment
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111537
diff
changeset
|
894 (defvar allout-version "2.2.2" |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
895 "Version of currently loaded outline package. (allout.el)") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
896 ;;;_ > allout-version |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
897 (defun allout-version (&optional here) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
898 "Return string describing the loaded outline version." |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
899 (interactive "P") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
900 (let ((msg (concat "Allout Outline Mode v " allout-version))) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
901 (if here (insert msg)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
902 (message "%s" msg) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
903 msg)) |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
904 ;;;_ : Mode activation (defined here because it's referenced early) |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
905 ;;;_ = allout-mode |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
906 (defvar allout-mode nil "Allout outline mode minor-mode flag.") |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
907 (make-variable-buffer-local 'allout-mode) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
908 ;;;_ = allout-layout nil |
79939 | 909 (defvar allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring. |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
910 "Buffer-specific setting for allout layout. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
911 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
912 In buffers where this is non-nil (and if `allout-init' has been run, to |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
913 enable this behavior), `allout-mode' will be automatically activated. The |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
914 layout dictated by the value will be used to set the initial exposure when |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
915 `allout-mode' is activated. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
916 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
917 \*You should not setq-default this variable non-nil unless you want every |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
918 visited file to be treated as an allout file.* |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
919 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
920 The value would typically be set by a file local variable. For |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
921 example, the following lines at the bottom of an Emacs Lisp file: |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
922 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
923 ;;;Local variables: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
924 ;;;allout-layout: (0 : -1 -1 0) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
925 ;;;End: |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
926 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
927 dictate activation of `allout-mode' mode when the file is visited |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
928 \(presuming allout-init was already run), followed by the |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
929 equivalent of `(allout-expose-topic 0 : -1 -1 0)'. (This is |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
930 the layout used for the allout.el source file.) |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
931 |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
932 `allout-default-layout' describes the specification format. |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
933 `allout-layout' can additionally have the value `t', in which |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
934 case the value of `allout-default-layout' is used.") |
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
935 (make-variable-buffer-local 'allout-layout) |
70002
e753e12d2f33
(allout-layout): Autoload its `safe-local-variable' property.
Eli Zaretskii <eliz@gnu.org>
parents:
69481
diff
changeset
|
936 ;;;###autoload |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
937 (put 'allout-layout 'safe-local-variable |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
938 '(lambda (x) (or (numberp x) (listp x) (memq x '(: * + -))))) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
939 |
29490 | 940 ;;;_ : Topic header format |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
941 ;;;_ = allout-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
942 (defvar allout-regexp "" |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
943 "*Regular expression to match the beginning of a heading line. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
944 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
945 Any line whose beginning matches this regexp is considered a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
946 heading. This var is set according to the user configuration vars |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
947 by `set-allout-regexp'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
948 (make-variable-buffer-local 'allout-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
949 ;;;_ = allout-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
950 (defvar allout-bullets-string "" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
951 "A string dictating the valid set of outline topic bullets. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
952 |
79939 | 953 This var should *not* be set by the user -- it is set by `set-allout-regexp', |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
954 and is produced from the elements of `allout-plain-bullets-string' |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
955 and `allout-distinctive-bullets-string'.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
956 (make-variable-buffer-local 'allout-bullets-string) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
957 ;;;_ = allout-bullets-string-len |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
958 (defvar allout-bullets-string-len 0 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
959 "Length of current buffers' `allout-plain-bullets-string'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
960 (make-variable-buffer-local 'allout-bullets-string-len) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
961 ;;;_ = allout-depth-specific-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
962 (defvar allout-depth-specific-regexp "" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
963 "*Regular expression to match a heading line prefix for a particular depth. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
964 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
965 This expression is used to search for depth-specific topic |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
966 headers at depth 2 and greater. Use `allout-depth-one-regexp' |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
967 for to seek topics at depth one. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
968 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
969 This var is set according to the user configuration vars by |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
970 `set-allout-regexp'. It is prepared with format strings for two |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
971 decimal numbers, which should each be one less than the depth of the |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
972 topic prefix to be matched.") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
973 (make-variable-buffer-local 'allout-depth-specific-regexp) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
974 ;;;_ = allout-depth-one-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
975 (defvar allout-depth-one-regexp "" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
976 "*Regular expression to match a heading line prefix for depth one. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
977 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
978 This var is set according to the user configuration vars by |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
979 `set-allout-regexp'. It is prepared with format strings for two |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
980 decimal numbers, which should each be one less than the depth of the |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
981 topic prefix to be matched.") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
982 (make-variable-buffer-local 'allout-depth-one-regexp) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
983 ;;;_ = allout-line-boundary-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
984 (defvar allout-line-boundary-regexp () |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
985 "`allout-regexp' prepended with a newline for the search target. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
986 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
987 This is properly set by `set-allout-regexp'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
988 (make-variable-buffer-local 'allout-line-boundary-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
989 ;;;_ = allout-bob-regexp |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
990 (defvar allout-bob-regexp () |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
991 "Like `allout-line-boundary-regexp', for headers at beginning of buffer.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
992 (make-variable-buffer-local 'allout-bob-regexp) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
993 ;;;_ = allout-header-subtraction |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
994 (defvar allout-header-subtraction (1- (length allout-header-prefix)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
995 "Allout-header prefix length to subtract when computing topic depth.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
996 (make-variable-buffer-local 'allout-header-subtraction) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
997 ;;;_ = allout-plain-bullets-string-len |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
998 (defvar allout-plain-bullets-string-len (length allout-plain-bullets-string) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
999 "Length of `allout-plain-bullets-string', updated by `set-allout-regexp'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1000 (make-variable-buffer-local 'allout-plain-bullets-string-len) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1001 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1002 ;;;_ = allout-doublecheck-at-and-shallower |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1003 (defconst allout-doublecheck-at-and-shallower 3 |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
1004 "Validate apparent topics of this depth and shallower as being non-aberrant. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1005 |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1006 Verified with `allout-aberrant-container-p'. The usefulness of |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1007 this check is limited to shallow depths, because the |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1008 determination of aberrance is according to the mistaken item |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1009 being followed by a legitimate item of excessively greater depth. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1010 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1011 The classic example of a mistaken item, for a standard allout |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1012 outline configuration, is a body line that begins with an '...' |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1013 ellipsis. This happens to contain a legitimate depth-2 header |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1014 prefix, constituted by two '..' dots at the beginning of the |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1015 line. The only thing that can distinguish it *in principle* from |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1016 a legitimate one is if the following real header is at a depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1017 that is discontinuous from the depth of 2 implied by the |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1018 ellipsis, ie depth 4 or more. As the depth being tested gets |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1019 greater, the likelihood of this kind of disqualification is |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1020 lower, and the usefulness of this test is lower. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1021 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1022 Extending the depth of the doublecheck increases the amount it is |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1023 applied, increasing the cost of the test - on casual estimation, |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1024 for outlines with many deep topics, geometrically (O(n)?). |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1025 Taken together with decreasing likelihood that the test will be |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1026 useful at greater depths, more modest doublecheck limits are more |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1027 suitably economical.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1028 ;;;_ X allout-reset-header-lead (header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1029 (defun allout-reset-header-lead (header-lead) |
100171 | 1030 "Reset the leading string used to identify topic headers." |
3430 | 1031 (interactive "sNew lead string: ") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1032 (setq allout-header-prefix header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1033 (setq allout-header-subtraction (1- (length allout-header-prefix))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1034 (set-allout-regexp)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1035 ;;;_ X allout-lead-with-comment-string (header-lead) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1036 (defun allout-lead-with-comment-string (&optional header-lead) |
100171 | 1037 "Set the topic-header leading string to specified string. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1038 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1039 Useful when for encapsulating outline structure in programming |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1040 language comments. Returns the leading string." |
3430 | 1041 |
1042 (interactive "P") | |
1043 (if (not (stringp header-lead)) | |
1044 (setq header-lead (read-string | |
1045 "String prefix for topic headers: "))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1046 (setq allout-reindent-bodies nil) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1047 (allout-reset-header-lead header-lead) |
3430 | 1048 header-lead) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1049 ;;;_ > allout-infer-header-lead-and-primary-bullet () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1050 (defun allout-infer-header-lead-and-primary-bullet () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1051 "Determine appropriate `allout-header-prefix' and `allout-primary-bullet'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1052 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1053 Works according to settings of: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1054 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1055 `comment-start' |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1056 `allout-header-prefix' (default) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1057 `allout-use-mode-specific-leader' |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1058 and `allout-mode-leaders'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1059 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1060 Apply this via (re)activation of `allout-mode', rather than |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1061 invoking it directly." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1062 (let* ((use-leader (and (boundp 'allout-use-mode-specific-leader) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1063 (if (or (stringp allout-use-mode-specific-leader) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1064 (memq allout-use-mode-specific-leader |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1065 '(allout-mode-leaders |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1066 comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1067 t))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1068 allout-use-mode-specific-leader |
79939 | 1069 ;; Oops -- garbled value, equate with effect of t: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1070 t))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1071 (leader |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1072 (cond |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1073 ((not use-leader) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1074 ;; Use the explicitly designated leader: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1075 ((stringp use-leader) use-leader) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1076 (t (or (and (memq use-leader '(t allout-mode-leaders)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1077 ;; Get it from outline mode leaders? |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1078 (cdr (assq major-mode allout-mode-leaders))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1079 ;; ... didn't get from allout-mode-leaders... |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1080 (and (memq use-leader '(t comment-start)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1081 comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1082 ;; Use comment-start, maybe tripled, and with |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1083 ;; underscore: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1084 (concat |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1085 (if (string= " " |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1086 (substring comment-start |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1087 (1- (length comment-start)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1088 ;; Use comment-start, sans trailing space: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1089 (substring comment-start 0 -1) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1090 (concat comment-start comment-start comment-start)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1091 ;; ... and append underscore, whichever: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1092 "_"))))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1093 (if (not leader) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1094 nil |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1095 (setq allout-header-prefix leader) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1096 (if (not allout-old-style-prefixes) |
79940
b113c474ec50
More trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
79939
diff
changeset
|
1097 ;; setting allout-primary-bullet makes the top level topics use -- |
79939 | 1098 ;; actually, be -- the special prefix: |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1099 (setq allout-primary-bullet leader)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1100 allout-header-prefix))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1101 (defalias 'allout-infer-header-lead |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1102 'allout-infer-header-lead-and-primary-bullet) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1103 ;;;_ > allout-infer-body-reindent () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1104 (defun allout-infer-body-reindent () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1105 "Determine proper setting for `allout-reindent-bodies'. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1106 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1107 Depends on default setting of `allout-reindent-bodies' (which see) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1108 and presence of setting for `comment-start', to tell whether the |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1109 file is programming code." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1110 (if (and allout-reindent-bodies |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1111 comment-start |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1112 (not (eq 'force allout-reindent-bodies))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1113 (setq allout-reindent-bodies nil))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1114 ;;;_ > set-allout-regexp () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1115 (defun set-allout-regexp () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1116 "Generate proper topic-header regexp form for outline functions. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1117 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1118 Works with respect to `allout-plain-bullets-string' and |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1119 `allout-distinctive-bullets-string'. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1120 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1121 Also refresh various data structures that hinge on the regexp." |
3430 | 1122 |
1123 (interactive) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1124 ;; Derive allout-bullets-string from user configured components: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1125 (setq allout-bullets-string "") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1126 (let ((strings (list 'allout-plain-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1127 'allout-distinctive-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1128 'allout-primary-bullet)) |
3430 | 1129 cur-string |
1130 cur-len | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1131 cur-char |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1132 index) |
3430 | 1133 (while strings |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1134 (setq index 0) |
3430 | 1135 (setq cur-len (length (setq cur-string (symbol-value (car strings))))) |
1136 (while (< index cur-len) | |
1137 (setq cur-char (aref cur-string index)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1138 (setq allout-bullets-string |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1139 (concat allout-bullets-string |
3430 | 1140 (cond |
1141 ; Single dash would denote a | |
1142 ; sequence, repeated denotes | |
1143 ; a dash: | |
1144 ((eq cur-char ?-) "--") | |
1145 ; literal close-square-bracket | |
1146 ; doesn't work right in the | |
1147 ; expr, exclude it: | |
1148 ((eq cur-char ?\]) "") | |
1149 (t (regexp-quote (char-to-string cur-char)))))) | |
1150 (setq index (1+ index))) | |
1151 (setq strings (cdr strings))) | |
1152 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1153 ;; Derive next for repeated use in allout-pending-bullet: |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1154 (setq allout-plain-bullets-string-len (length allout-plain-bullets-string)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1155 (setq allout-header-subtraction (1- (length allout-header-prefix))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1156 |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1157 (let (new-part old-part formfeed-part) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1158 (setq new-part (concat "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1159 (regexp-quote allout-header-prefix) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1160 "[ \t]*" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1161 ;; already regexp-quoted in a custom way: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1162 "[" allout-bullets-string "]" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1163 "\\)") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1164 old-part (concat "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1165 (regexp-quote allout-primary-bullet) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1166 "\\|" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1167 (regexp-quote allout-header-prefix) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1168 "\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1169 "+" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1170 " ?[^" allout-primary-bullet "]") |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1171 formfeed-part "\\(\^L\\)" |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1172 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1173 allout-regexp (concat new-part |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1174 "\\|" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1175 old-part |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1176 "\\|" |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1177 formfeed-part) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1178 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1179 allout-line-boundary-regexp (concat "\n" new-part |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1180 "\\|" |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1181 "\n" old-part |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1182 "\\|" |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1183 "\n" formfeed-part) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1184 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1185 allout-bob-regexp (concat "\\`" new-part |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1186 "\\|" |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1187 "\\`" old-part |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1188 "\\|" |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1189 "\\`" formfeed-part |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1190 )) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1191 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1192 (setq allout-depth-specific-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1193 (concat "\\(^\\|\\`\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1194 "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1195 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1196 ;; new-style spacers-then-bullet string: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1197 "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1198 (allout-format-quote (regexp-quote allout-header-prefix)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1199 " \\{%s\\}" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1200 "[" (allout-format-quote allout-bullets-string) "]" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1201 "\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1202 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1203 ;; old-style all-bullets string, if primary not multi-char: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1204 (if (< 0 allout-header-subtraction) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1205 "" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1206 (concat "\\|\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1207 (allout-format-quote |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1208 (regexp-quote allout-primary-bullet)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1209 (allout-format-quote |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1210 (regexp-quote allout-primary-bullet)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1211 (allout-format-quote |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1212 (regexp-quote allout-primary-bullet)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1213 "\\{%s\\}" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1214 ;; disqualify greater depths: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1215 "[^" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1216 (allout-format-quote allout-primary-bullet) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1217 "]\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1218 )) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1219 "\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1220 )) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1221 (setq allout-depth-one-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1222 (concat "\\(^\\|\\`\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1223 "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1224 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1225 "\\(" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1226 (regexp-quote allout-header-prefix) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1227 ;; disqualify any bullet char following any amount of |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1228 ;; intervening whitespace: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1229 " *" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1230 (concat "[^ " allout-bullets-string "]") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1231 "\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1232 (if (< 0 allout-header-subtraction) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1233 ;; Need not support anything like the old |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1234 ;; bullet style if the prefix is multi-char. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1235 "" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1236 (concat "\\|" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1237 (regexp-quote allout-primary-bullet) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1238 ;; disqualify deeper primary-bullet sequences: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1239 "[^" allout-primary-bullet "]")) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1240 "\\)" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1241 )))) |
29490 | 1242 ;;;_ : Key bindings |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1243 ;;;_ = allout-mode-map |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1244 (defvar allout-mode-map nil "Keybindings for (allout) outline minor mode.") |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1245 ;;;_ > produce-allout-mode-map (keymap-alist &optional base-map) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1246 (defun produce-allout-mode-map (keymap-list &optional base-map) |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
1247 "Produce keymap for use as `allout-mode-map', from KEYMAP-LIST. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1248 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1249 Built on top of optional BASE-MAP, or empty sparse map if none specified. |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
1250 See doc string for `allout-keybindings-list' for format of binding list." |
29490 | 1251 (let ((map (or base-map (make-sparse-keymap))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1252 (pref (list allout-command-prefix))) |
84855
5b7295004fd1
(produce-allout-mode-map, allout-process-exposed):
Juanma Barranquero <lekktu@gmail.com>
parents:
78492
diff
changeset
|
1253 (mapc (function |
29490 | 1254 (lambda (cell) |
1255 (let ((add-pref (null (cdr (cdr cell)))) | |
1256 (key-suff (list (car cell)))) | |
1257 (apply 'define-key | |
1258 (list map | |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
1259 (apply 'vconcat (if add-pref |
29490 | 1260 (append pref key-suff) |
1261 key-suff)) | |
1262 (car (cdr cell))))))) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1263 keymap-list) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1264 map)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1265 ;;;_ > allout-mode-map-adjustments (base-map) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1266 (defun allout-mode-map-adjustments (base-map) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1267 "Do conditional additions to specified base-map, like inclusion of \\C-h." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1268 (if allout-preempt-trailing-ctrl-h |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1269 (cons '("\C-h" allout-hide-current-subtree) base-map) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1270 base-map) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1271 ) |
29490 | 1272 ;;;_ : Menu bar |
54952
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1273 (defvar allout-mode-exposure-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1274 (defvar allout-mode-editing-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1275 (defvar allout-mode-navigation-menu) |
5e2b4f7225cb
(allout-mode-exposure-menu, allout-mode-editing-menu):
Richard M. Stallman <rms@gnu.org>
parents:
54770
diff
changeset
|
1276 (defvar allout-mode-misc-menu) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1277 (defun produce-allout-mode-menubar-entries () |
29490 | 1278 (require 'easymenu) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1279 (easy-menu-define allout-mode-exposure-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1280 allout-mode-map |
29490 | 1281 "Allout outline exposure menu." |
1282 '("Exposure" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1283 ["Show Entry" allout-show-current-entry t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1284 ["Show Children" allout-show-children t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1285 ["Show Subtree" allout-show-current-subtree t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1286 ["Hide Subtree" allout-hide-current-subtree t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1287 ["Hide Leaves" allout-hide-current-leaves t] |
29490 | 1288 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1289 ["Show All" allout-show-all t])) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1290 (easy-menu-define allout-mode-editing-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1291 allout-mode-map |
29490 | 1292 "Allout outline editing menu." |
1293 '("Headings" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1294 ["Open Sibling" allout-open-sibtopic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1295 ["Open Subtopic" allout-open-subtopic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1296 ["Open Supertopic" allout-open-supertopic t] |
29490 | 1297 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1298 ["Shift Topic In" allout-shift-in t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1299 ["Shift Topic Out" allout-shift-out t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1300 ["Rebullet Topic" allout-rebullet-topic t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1301 ["Rebullet Heading" allout-rebullet-current-heading t] |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1302 ["Number Siblings" allout-number-siblings t] |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1303 "----" |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1304 ["Toggle Topic Encryption" |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1305 allout-toggle-current-subtree-encryption |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1306 (> (allout-current-depth) 1)])) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1307 (easy-menu-define allout-mode-navigation-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1308 allout-mode-map |
29490 | 1309 "Allout outline navigation menu." |
1310 '("Navigation" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1311 ["Next Visible Heading" allout-next-visible-heading t] |
29490 | 1312 ["Previous Visible Heading" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1313 allout-previous-visible-heading t] |
29490 | 1314 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1315 ["Up Level" allout-up-current-level t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1316 ["Forward Current Level" allout-forward-current-level t] |
29490 | 1317 ["Backward Current Level" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1318 allout-backward-current-level t] |
29490 | 1319 "----" |
1320 ["Beginning of Entry" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1321 allout-beginning-of-current-entry t] |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1322 ["End of Entry" allout-end-of-entry t] |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1323 ["End of Subtree" allout-end-of-current-subtree t])) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1324 (easy-menu-define allout-mode-misc-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1325 allout-mode-map |
29490 | 1326 "Allout outlines miscellaneous bindings." |
1327 '("Misc" | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1328 ["Version" allout-version t] |
29490 | 1329 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1330 ["Duplicate Exposed" allout-copy-exposed-to-buffer t] |
29490 | 1331 ["Duplicate Exposed, numbered" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
1332 allout-flatten-exposed-to-buffer t] |
29490 | 1333 ["Duplicate Exposed, indented" |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
1334 allout-indented-exposed-to-buffer t] |
29490 | 1335 "----" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1336 ["Set Header Lead" allout-reset-header-lead t] |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1337 ["Set New Exposure" allout-expose-topic t]))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1338 ;;;_ : Allout Modal-Variables Utilities |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1339 ;;;_ = allout-mode-prior-settings |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1340 (defvar allout-mode-prior-settings nil |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1341 "Internal `allout-mode' use; settings to be resumed on mode deactivation. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1342 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1343 See `allout-add-resumptions' and `allout-do-resumptions'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1344 (make-variable-buffer-local 'allout-mode-prior-settings) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1345 ;;;_ > allout-add-resumptions (&rest pairs) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1346 (defun allout-add-resumptions (&rest pairs) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1347 "Set name/value PAIRS. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1348 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1349 Old settings are preserved for later resumption using `allout-do-resumptions'. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1350 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1351 The new values are set as a buffer local. On resumption, the prior buffer |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1352 scope of the variable is restored along with its value. If it was a void |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1353 buffer-local value, then it is left as nil on resumption. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1354 |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1355 The pairs are lists whose car is the name of the variable and car of the |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1356 cdr is the new value: '(some-var some-value)'. The pairs can actually be |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1357 triples, where the third element qualifies the disposition of the setting, |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1358 as described further below. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1359 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1360 If the optional third element is the symbol 'extend, then the new value |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1361 created by `cons'ing the second element of the pair onto the front of the |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1362 existing value. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1363 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1364 If the optional third element is the symbol 'append, then the new value is |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1365 extended from the existing one by `append'ing a list containing the second |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1366 element of the pair onto the end of the existing value. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1367 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1368 Extension, and resumptions in general, should not be used for hook |
79939 | 1369 functions -- use the 'local mode of `add-hook' for that, instead. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1370 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1371 The settings are stored on `allout-mode-prior-settings'." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1372 (while pairs |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1373 (let* ((pair (pop pairs)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1374 (name (car pair)) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1375 (value (cadr pair)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1376 (qualifier (if (> (length pair) 2) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1377 (caddr pair))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1378 prior-value) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1379 (if (not (symbolp name)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1380 (error "Pair's name, %S, must be a symbol, not %s" |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1381 name (type-of name))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
1382 (setq prior-value (condition-case nil |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1383 (symbol-value name) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1384 (void-variable nil))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1385 (when (not (assoc name allout-mode-prior-settings)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1386 ;; Not already added as a resumption, create the prior setting entry. |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1387 (if (local-variable-p name (current-buffer)) |
79939 | 1388 ;; is already local variable -- preserve the prior value: |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1389 (push (list name prior-value) allout-mode-prior-settings) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1390 ;; wasn't local variable, indicate so for resumption by killing |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1391 ;; local value, and make it local: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1392 (push (list name) allout-mode-prior-settings) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1393 (make-local-variable name))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1394 (if qualifier |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1395 (cond ((eq qualifier 'extend) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1396 (if (not (listp prior-value)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1397 (error "extension of non-list prior value attempted") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1398 (set name (cons value prior-value)))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1399 ((eq qualifier 'append) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1400 (if (not (listp prior-value)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1401 (error "appending of non-list prior value attempted") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1402 (set name (append prior-value (list value))))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1403 (t (error "unrecognized setting qualifier `%s' encountered" |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1404 qualifier))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1405 (set name value))))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1406 ;;;_ > allout-do-resumptions () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1407 (defun allout-do-resumptions () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1408 "Resume all name/value settings registered by `allout-add-resumptions'. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1409 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1410 This is used when concluding allout-mode, to resume selected variables to |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1411 their settings before allout-mode was started." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1412 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1413 (while allout-mode-prior-settings |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1414 (let* ((pair (pop allout-mode-prior-settings)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1415 (name (car pair)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1416 (value-cell (cdr pair))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1417 (if (not value-cell) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1418 ;; Prior value was global: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1419 (kill-local-variable name) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1420 ;; Prior value was explicit: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1421 (set name (car value-cell)))))) |
29490 | 1422 ;;;_ : Mode-specific incidentals |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1423 ;;;_ > allout-unprotected (expr) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1424 (defmacro allout-unprotected (expr) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1425 "Enable internal outline operations to alter invisible text." |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
1426 `(let ((inhibit-read-only (if (not buffer-read-only) t)) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
1427 (inhibit-field-text-motion t)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1428 ,expr)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1429 ;;;_ = allout-mode-hook |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1430 (defvar allout-mode-hook nil |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1431 "*Hook that's run when allout mode starts.") |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1432 ;;;_ = allout-mode-deactivate-hook |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1433 (defvar allout-mode-deactivate-hook nil |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1434 "*Hook that's run when allout mode ends.") |
112044
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
1435 (define-obsolete-variable-alias 'allout-mode-deactivate-hook |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
1436 'allout-mode-off-hook "future") |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1437 ;;;_ = allout-exposure-category |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1438 (defvar allout-exposure-category nil |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1439 "Symbol for use as allout invisible-text overlay category.") |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
1440 ;;;_ x allout-view-change-hook |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1441 (defvar allout-view-change-hook nil |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1442 "*(Deprecated) A hook run after allout outline exposure changes. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1443 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1444 Switch to using `allout-exposure-change-hook' instead. Both hooks are |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1445 currently respected, but the other conveys the details of the exposure |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1446 change via explicit parameters, and this one will eventually be disabled in |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1447 a subsequent allout version.") |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
1448 ;;;_ = allout-exposure-change-hook |
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
1449 (defvar allout-exposure-change-hook nil |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1450 "*Hook that's run after allout outline subtree exposure changes. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1451 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1452 It is run at the conclusion of `allout-flag-region'. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1453 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1454 Functions on the hook must take three arguments: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1455 |
79939 | 1456 - FROM -- integer indicating the point at the start of the change. |
1457 - TO -- integer indicating the point of the end of the change. | |
1458 - FLAG -- change mode: nil for exposure, otherwise concealment. | |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1459 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1460 This hook might be invoked multiple times by a single command. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1461 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1462 This hook is replacing `allout-view-change-hook', which is being deprecated |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1463 and eventually will not be invoked.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1464 ;;;_ = allout-structure-added-hook |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1465 (defvar allout-structure-added-hook nil |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1466 "*Hook that's run after addition of items to the outline. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1467 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1468 Functions on the hook should take two arguments: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1469 |
79939 | 1470 - NEW-START -- integer indicating position of start of the first new item. |
1471 - NEW-END -- integer indicating position of end of the last new item. | |
1472 | |
1473 Some edits that introduce new items may missed by this hook: | |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1474 specifically edits that native allout routines do not control. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1475 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1476 This hook might be invoked multiple times by a single command.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1477 ;;;_ = allout-structure-deleted-hook |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1478 (defvar allout-structure-deleted-hook nil |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1479 "*Hook that's run after disciplined deletion of subtrees from the outline. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1480 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1481 Functions on the hook must take two arguments: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1482 |
79939 | 1483 - DEPTH -- integer indicating the depth of the subtree that was deleted. |
1484 - REMOVED-FROM -- integer indicating the point where the subtree was removed. | |
1485 | |
1486 Some edits that remove or invalidate items may missed by this hook: | |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1487 specifically edits that native allout routines do not control. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1488 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1489 This hook might be invoked multiple times by a single command.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1490 ;;;_ = allout-structure-shifted-hook |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1491 (defvar allout-structure-shifted-hook nil |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1492 "*Hook that's run after shifting of items in the outline. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1493 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1494 Functions on the hook should take two arguments: |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1495 |
79939 | 1496 - DEPTH-CHANGE -- integer indicating depth increase, negative for decrease |
1497 - START -- integer indicating the start point of the shifted parent item. | |
1498 | |
1499 Some edits that shift items can be missed by this hook: specifically edits | |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1500 that native allout routines do not control. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1501 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1502 This hook might be invoked multiple times by a single command.") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1503 ;;;_ = allout-outside-normal-auto-fill-function |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1504 (defvar allout-outside-normal-auto-fill-function nil |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1505 "Value of normal-auto-fill-function outside of allout mode. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1506 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1507 Used by allout-auto-fill to do the mandated normal-auto-fill-function |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1508 wrapped within allout's automatic fill-prefix setting.") |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1509 (make-variable-buffer-local 'allout-outside-normal-auto-fill-function) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1510 ;;;_ = prevent redundant activation by desktop mode: |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1511 (add-to-list 'desktop-minor-mode-handlers '(allout-mode . nil)) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1512 ;;;_ = allout-passphrase-verifier-string |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1513 (defvar allout-passphrase-verifier-string nil |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1514 "Setting used to test solicited encryption passphrases against the one |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1515 already associated with a file. |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1516 |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1517 It consists of an encrypted random string useful only to verify that a |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1518 passphrase entered by the user is effective for decryption. The passphrase |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1519 itself is \*not* recorded in the file anywhere, and the encrypted contents |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1520 are random binary characters to avoid exposing greater susceptibility to |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1521 search attacks. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1522 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1523 The verifier string is retained as an Emacs file variable, as well as in |
73763
89b9e8184350
(allout-adjust-file-variable, allout-passphrase-verifier-string,
Juanma Barranquero <lekktu@gmail.com>
parents:
73660
diff
changeset
|
1524 the Emacs buffer state, if file variable adjustments are enabled. See |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1525 `allout-enable-file-variable-adjustment' for details about that.") |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1526 (make-variable-buffer-local 'allout-passphrase-verifier-string) |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1527 (make-obsolete 'allout-passphrase-verifier-string |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1528 'allout-passphrase-verifier-string "23.3") |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
1529 ;;;###autoload |
70225
81a284d45346
(allout-layout, allout-passphrase-verifier-string)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70002
diff
changeset
|
1530 (put 'allout-passphrase-verifier-string 'safe-local-variable 'stringp) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1531 ;;;_ = allout-passphrase-hint-string |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1532 (defvar allout-passphrase-hint-string "" |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1533 "Variable used to retain reminder string for file's encryption passphrase. |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1534 |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1535 See the description of `allout-passphrase-hint-handling' for details about how |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1536 the reminder is deployed. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1537 |
73763
89b9e8184350
(allout-adjust-file-variable, allout-passphrase-verifier-string,
Juanma Barranquero <lekktu@gmail.com>
parents:
73660
diff
changeset
|
1538 The hint is retained as an Emacs file variable, as well as in the Emacs buffer |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1539 state, if file variable adjustments are enabled. See |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1540 `allout-enable-file-variable-adjustment' for details about that.") |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1541 (make-variable-buffer-local 'allout-passphrase-hint-string) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
1542 (setq-default allout-passphrase-hint-string "") |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1543 (make-obsolete 'allout-passphrase-hint-string |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1544 'allout-passphrase-hint-string "23.3") |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
1545 ;;;###autoload |
70225
81a284d45346
(allout-layout, allout-passphrase-verifier-string)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70002
diff
changeset
|
1546 (put 'allout-passphrase-hint-string 'safe-local-variable 'stringp) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1547 ;;;_ = allout-after-save-decrypt |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1548 (defvar allout-after-save-decrypt nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1549 "Internal variable, is nil or has the value of two points: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1550 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1551 - the location of a topic to be decrypted after saving is done |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1552 - where to situate the cursor after the decryption is performed |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1553 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1554 This is used to decrypt the topic that was currently being edited, if it |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1555 was encrypted automatically as part of a file write or autosave.") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1556 (make-variable-buffer-local 'allout-after-save-decrypt) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1557 ;;;_ = allout-encryption-plaintext-sanitization-regexps |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1558 (defvar allout-encryption-plaintext-sanitization-regexps nil |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1559 "List of regexps whose matches are removed from plaintext before encryption. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1560 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1561 This is for the sake of removing artifacts, like escapes, that are added on |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1562 and not actually part of the original plaintext. The removal is done just |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1563 prior to encryption. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1564 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1565 Entries must be symbols that are bound to the desired values. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1566 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1567 Each value can be a regexp or a list with a regexp followed by a |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1568 substitution string. If it's just a regexp, all its matches are removed |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1569 before the text is encrypted. If it's a regexp and a substitution, the |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1570 substition is used against the regexp matches, a la `replace-match'.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1571 (make-variable-buffer-local 'allout-encryption-text-removal-regexps) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1572 ;;;_ = allout-encryption-ciphertext-rejection-regexps |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1573 (defvar allout-encryption-ciphertext-rejection-regexps nil |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1574 "Variable for regexps matching plaintext to remove before encryption. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1575 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1576 This is used to detect strings in encryption results that would |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1577 register as allout mode structural elements, for exmple, as a |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1578 topic prefix. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1579 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1580 Entries must be symbols that are bound to the desired regexp values. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1581 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1582 Encryptions that result in matches will be retried, up to |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1583 `allout-encryption-ciphertext-rejection-limit' times, after which |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
1584 an error is raised.") |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1585 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1586 (make-variable-buffer-local 'allout-encryption-ciphertext-rejection-regexps) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1587 ;;;_ = allout-encryption-ciphertext-rejection-ceiling |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1588 (defvar allout-encryption-ciphertext-rejection-ceiling 5 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1589 "Limit on number of times encryption ciphertext is rejected. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1590 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1591 See `allout-encryption-ciphertext-rejection-regexps' for rejection reasons.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
1592 (make-variable-buffer-local 'allout-encryption-ciphertext-rejection-ceiling) |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1593 ;;;_ > allout-mode-p () |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1594 ;; Must define this macro above any uses, or byte compilation will lack |
79939 | 1595 ;; proper def, if file isn't loaded -- eg, during emacs build! |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1596 (defmacro allout-mode-p () |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1597 "Return t if `allout-mode' is active in current buffer." |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1598 'allout-mode) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1599 ;;;_ > allout-write-file-hook-handler () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1600 (defun allout-write-file-hook-handler () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1601 "Implement `allout-encrypt-unencrypted-on-saves' policy for file writes." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1602 |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1603 (if (or (not (allout-mode-p)) |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1604 (not (boundp 'allout-encrypt-unencrypted-on-saves)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1605 (not allout-encrypt-unencrypted-on-saves)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1606 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1607 (let ((except-mark (and (equal allout-encrypt-unencrypted-on-saves |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1608 'except-current) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1609 (point-marker)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1610 (if (save-excursion (goto-char (point-min)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1611 (allout-next-topic-pending-encryption except-mark)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1612 (progn |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1613 (message "auto-encrypting pending topics") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1614 (sit-for 0) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1615 (condition-case failure |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1616 (setq allout-after-save-decrypt |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1617 (allout-encrypt-decrypted except-mark)) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1618 (error (message |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1619 "allout-write-file-hook-handler suppressing error %s" |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1620 failure) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1621 (sit-for 2))))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1622 )) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
1623 nil) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1624 ;;;_ > allout-auto-save-hook-handler () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1625 (defun allout-auto-save-hook-handler () |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1626 "Implement `allout-encrypt-unencrypted-on-saves' policy for auto save." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1627 |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1628 (if (and (allout-mode-p) allout-encrypt-unencrypted-on-saves) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1629 ;; Always implement 'except-current policy when enabled. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1630 (let ((allout-encrypt-unencrypted-on-saves 'except-current)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1631 (allout-write-file-hook-handler)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1632 ;;;_ > allout-after-saves-handler () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1633 (defun allout-after-saves-handler () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1634 "Decrypt topic encrypted for save, if it's currently being edited. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1635 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1636 Ie, if it was pending encryption and contained the point in its body before |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1637 the save. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1638 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1639 We use values stored in `allout-after-save-decrypt' to locate the topic |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1640 and the place for the cursor after the decryption is done." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1641 (if (not (and (allout-mode-p) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1642 (boundp 'allout-after-save-decrypt) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1643 allout-after-save-decrypt)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1644 t |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1645 (goto-char (car allout-after-save-decrypt)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1646 (let ((was-modified (buffer-modified-p))) |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
1647 (allout-toggle-subtree-encryption) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1648 (if (not was-modified) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1649 (set-buffer-modified-p nil))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1650 (goto-char (cadr allout-after-save-decrypt)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1651 (setq allout-after-save-decrypt nil)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1652 ) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1653 ;;;_ > allout-called-interactively-p () |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1654 (defmacro allout-called-interactively-p () |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1655 "A version of called-interactively-p independent of emacs version." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1656 ;; ... to ease maintenance of allout without betraying deprecation. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1657 (if (equal (subr-arity (symbol-function 'called-interactively-p)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1658 '(0 . 0)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1659 '(called-interactively-p) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1660 '(called-interactively-p 'interactive))) |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1661 ;;;_ = allout-inhibit-aberrance-doublecheck nil |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1662 ;; In some exceptional moments, disparate topic depths need to be allowed |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1663 ;; momentarily, eg when one topic is being yanked into another and they're |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1664 ;; about to be reconciled. let-binding allout-inhibit-aberrance-doublecheck |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1665 ;; prevents the aberrance doublecheck to allow, eg, the reconciliation |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1666 ;; processing to happen in the presence of such discrepancies. It should |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1667 ;; almost never be needed, however. |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1668 (defvar allout-inhibit-aberrance-doublecheck nil |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1669 "Internal state, for momentarily inhibits aberrance doublecheck. |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1670 |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1671 This should only be momentarily let-bound non-nil, not set |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
1672 non-nil in a lasting way.") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1673 |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1674 ;;;_ #2 Mode environment and activation |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1675 ;;;_ = allout-explicitly-deactivated |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1676 (defvar allout-explicitly-deactivated nil |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1677 "If t, `allout-mode's last deactivation was deliberate. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1678 So `allout-post-command-business' should not reactivate it...") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1679 (make-variable-buffer-local 'allout-explicitly-deactivated) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1680 ;;;_ > allout-init (&optional mode) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1681 (defun allout-init (&optional mode) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
1682 "Prime `allout-mode' to enable/disable auto-activation, wrt `allout-layout'. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1683 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1684 MODE is one of the following symbols: |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1685 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1686 - nil (or no argument) deactivate auto-activation/layout; |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1687 - `activate', enable auto-activation only; |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1688 - `ask', enable auto-activation, and enable auto-layout but with |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
1689 confirmation for layout operation solicited from user each time; |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1690 - `report', just report and return the current auto-activation state; |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1691 - anything else (eg, t) for auto-activation and auto-layout, without |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1692 any confirmation check. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1693 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1694 Use this function to setup your Emacs session for automatic activation |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1695 of allout outline mode, contingent to the buffer-specific setting of |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1696 the `allout-layout' variable. (See `allout-layout' and |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1697 `allout-expose-topic' docstrings for more details on auto layout). |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1698 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1699 `allout-init' works by setting up (or removing) the `allout-mode' |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1700 find-file-hook, and giving `allout-auto-activation' a suitable |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1701 setting. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1702 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1703 To prime your Emacs session for full auto-outline operation, include |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
1704 the following two lines in your Emacs init file: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1705 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1706 \(require 'allout) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1707 \(allout-init t)" |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1708 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1709 (interactive) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1710 (if (allout-called-interactively-p) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1711 (progn |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1712 (setq mode |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1713 (completing-read |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1714 (concat "Select outline auto setup mode " |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1715 "(empty for report, ? for options) ") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1716 '(("nil")("full")("activate")("deactivate") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1717 ("ask") ("report") ("")) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1718 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1719 t)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1720 (if (string= mode "") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1721 (setq mode 'report) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1722 (setq mode (intern-soft mode))))) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1723 (let |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1724 ;; convenience aliases, for consistent ref to respective vars: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1725 ((hook 'allout-find-file-hook) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1726 (find-file-hook-var-name (if (boundp 'find-file-hook) |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1727 'find-file-hook |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1728 'find-file-hooks)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1729 (curr-mode 'allout-auto-activation)) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1730 |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1731 (cond ((not mode) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1732 (set find-file-hook-var-name |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1733 (delq hook (symbol-value find-file-hook-var-name))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1734 (if (allout-called-interactively-p) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1735 (message "Allout outline mode auto-activation inhibited."))) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1736 ((eq mode 'report) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1737 (if (not (memq hook (symbol-value find-file-hook-var-name))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1738 (allout-init nil) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1739 ;; Just punt and use the reports from each of the modes: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
1740 (allout-init (symbol-value curr-mode)))) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1741 (t (add-hook find-file-hook-var-name hook) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
1742 (set curr-mode ; `set', not `setq'! |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1743 (cond ((eq mode 'activate) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1744 (message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1745 "Outline mode auto-activation enabled.") |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1746 'activate) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1747 ((eq mode 'report) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1748 ;; Return the current mode setting: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1749 (allout-init mode)) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1750 ((eq mode 'ask) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1751 (message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1752 (concat "Outline mode auto-activation and " |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1753 "-layout (upon confirmation) enabled.")) |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1754 'ask) |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1755 ((message |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1756 "Outline mode auto-activation and -layout enabled.") |
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
1757 'full))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1758 ;;;_ > allout-setup-menubar () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1759 (defun allout-setup-menubar () |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
1760 "Populate the current buffer's menubar with `allout-mode' stuff." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1761 (let ((menus (list allout-mode-exposure-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1762 allout-mode-editing-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1763 allout-mode-navigation-menu |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1764 allout-mode-misc-menu)) |
29490 | 1765 cur) |
1766 (while menus | |
1767 (setq cur (car menus) | |
1768 menus (cdr menus)) | |
1769 (easy-menu-add cur)))) | |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1770 ;;;_ > allout-overlay-preparations |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1771 (defun allout-overlay-preparations () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1772 "Set the properties of the allout invisible-text overlay and others." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1773 (setplist 'allout-exposure-category nil) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1774 (put 'allout-exposure-category 'invisible 'allout) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1775 (put 'allout-exposure-category 'evaporate t) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
1776 ;; ??? We use isearch-open-invisible *and* isearch-mode-end-hook. The |
79940
b113c474ec50
More trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
79939
diff
changeset
|
1777 ;; latter would be sufficient, but it seems that a separate behavior -- |
79939 | 1778 ;; the _transient_ opening of invisible text during isearch -- is keyed to |
1779 ;; presence of the isearch-open-invisible property -- even though this | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1780 ;; property controls the isearch _arrival_ behavior. This is the case at |
92337
a1a12ed4e5e2
(allout-topic-encryption-bullet)
Glenn Morris <rgm@gnu.org>
parents:
88056
diff
changeset
|
1781 ;; least in emacs 21, 22.1, and xemacs 21.4. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1782 (put 'allout-exposure-category 'isearch-open-invisible |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1783 'allout-isearch-end-handler) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1784 (if (featurep 'xemacs) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1785 (put 'allout-exposure-category 'start-open t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1786 (put 'allout-exposure-category 'insert-in-front-hooks |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1787 '(allout-overlay-insert-in-front-handler))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1788 (put 'allout-exposure-category 'modification-hooks |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
1789 '(allout-overlay-interior-modification-handler))) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1790 ;;;_ > allout-mode (&optional force) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1791 ;;;_ : Defun: |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
1792 ;;;###autoload |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1793 (defun allout-mode (&optional force) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1794 ;;;_ . Doc string: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1795 "Toggle minor mode for controlling exposure and editing of text outlines. |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1796 \\<allout-mode-map> |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1797 |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1798 Allout outline mode always runs as a minor mode. |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1799 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1800 Optional FORCE non-nil, or command with no universal argument, |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1801 means force activation. |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1802 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1803 Allout outline mode provides extensive outline oriented |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1804 formatting and manipulation. It enables structural editing of |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1805 outlines, as well as navigation and exposure. It also is |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1806 specifically aimed at accommodating syntax-sensitive text like |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1807 programming languages. \(For example, see the allout code itself, |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1808 which is organized as an allout outline.) |
29490 | 1809 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1810 In addition to typical outline navigation and exposure, allout includes: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1811 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1812 - topic-oriented authoring, including keystroke-based topic creation, |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1813 repositioning, promotion/demotion, cut, and paste |
29490 | 1814 - incremental search with dynamic exposure and reconcealment of hidden text |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1815 - adjustable format, so programming code can be developed in outline-structure |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1816 - easy topic encryption and decryption, symmetric or key-pair |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1817 - \"Hot-spot\" operation, for single-keystroke maneuvering and exposure control |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1818 - integral outline layout, for automatic initial exposure when visiting a file |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1819 - independent extensibility, using comprehensive exposure and authoring hooks |
29490 | 1820 |
1821 and many other features. | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1822 |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1823 Below is a description of the key bindings, and then description |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1824 of special `allout-mode' features and terminology. See also the |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1825 outline menubar additions for quick reference to many of the |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1826 features, and see the docstring of the function `allout-init' for |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1827 instructions on priming your emacs session for automatic |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1828 activation of `allout-mode'. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1829 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1830 The bindings are dictated by the customizable `allout-keybindings-list' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1831 variable. We recommend customizing `allout-command-prefix' to use just |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1832 `\\C-c' as the command prefix, if the allout bindings don't conflict with |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1833 any personal bindings you have on \\C-c. In any case, outline structure |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1834 navigation and authoring is simplified by positioning the cursor on an |
79939 | 1835 item's bullet character, the \"hot-spot\" -- then you can invoke allout |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1836 commands with just the un-prefixed, un-control-shifted command letters. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1837 This is described further in the HOT-SPOT Operation section. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1838 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1839 Exposure Control: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1840 ---------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1841 \\[allout-hide-current-subtree] `allout-hide-current-subtree' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1842 \\[allout-show-children] `allout-show-children' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1843 \\[allout-show-current-subtree] `allout-show-current-subtree' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1844 \\[allout-show-current-entry] `allout-show-current-entry' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1845 \\[allout-show-all] `allout-show-all' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1846 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1847 Navigation: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1848 ---------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1849 \\[allout-next-visible-heading] `allout-next-visible-heading' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1850 \\[allout-previous-visible-heading] `allout-previous-visible-heading' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1851 \\[allout-up-current-level] `allout-up-current-level' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1852 \\[allout-forward-current-level] `allout-forward-current-level' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1853 \\[allout-backward-current-level] `allout-backward-current-level' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1854 \\[allout-end-of-entry] `allout-end-of-entry' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1855 \\[allout-beginning-of-current-entry] `allout-beginning-of-current-entry' (alternately, goes to hot-spot) |
79939 | 1856 \\[allout-beginning-of-line] `allout-beginning-of-line' -- like regular beginning-of-line, but |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1857 if immediately repeated cycles to the beginning of the current item |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1858 and then to the hot-spot (if `allout-beginning-of-line-cycles' is set). |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1859 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1860 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1861 Topic Header Production: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1862 ----------------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1863 \\[allout-open-sibtopic] `allout-open-sibtopic' Create a new sibling after current topic. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1864 \\[allout-open-subtopic] `allout-open-subtopic' ... an offspring of current topic. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1865 \\[allout-open-supertopic] `allout-open-supertopic' ... a sibling of the current topic's parent. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1866 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1867 Topic Level and Prefix Adjustment: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1868 --------------------------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1869 \\[allout-shift-in] `allout-shift-in' Shift current topic and all offspring deeper |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1870 \\[allout-shift-out] `allout-shift-out' ... less deep |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1871 \\[allout-rebullet-current-heading] `allout-rebullet-current-heading' Prompt for alternate bullet for |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1872 current topic |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1873 \\[allout-rebullet-topic] `allout-rebullet-topic' Reconcile bullets of topic and |
79939 | 1874 its' offspring -- distinctive bullets are not changed, others |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1875 are alternated according to nesting depth. |
79940
b113c474ec50
More trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
79939
diff
changeset
|
1876 \\[allout-number-siblings] `allout-number-siblings' Number bullets of topic and siblings -- |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1877 the offspring are not affected. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1878 With repeat count, revoke numbering. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1879 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1880 Topic-oriented Killing and Yanking: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1881 ---------------------------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1882 \\[allout-kill-topic] `allout-kill-topic' Kill current topic, including offspring. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1883 \\[allout-copy-topic-as-kill] `allout-copy-topic-as-kill' Copy current topic, including offspring. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1884 \\[allout-kill-line] `allout-kill-line' kill-line, attending to outline structure. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1885 \\[allout-copy-line-as-kill] `allout-copy-line-as-kill' Copy line but don't delete it. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1886 \\[allout-yank] `allout-yank' Yank, adjusting depth of yanked topic to |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1887 depth of heading if yanking into bare topic |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1888 heading (ie, prefix sans text). |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1889 \\[allout-yank-pop] `allout-yank-pop' Is to allout-yank as yank-pop is to yank |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1890 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1891 Topic-oriented Encryption: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1892 ------------------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1893 \\[allout-toggle-current-subtree-encryption] `allout-toggle-current-subtree-encryption' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1894 Encrypt/Decrypt topic content |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1895 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1896 Misc commands: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1897 ------------- |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1898 M-x outlineify-sticky Activate outline mode for current buffer, |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1899 and establish a default file-var setting |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1900 for `allout-layout'. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1901 \\[allout-mark-topic] `allout-mark-topic' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1902 \\[allout-copy-exposed-to-buffer] `allout-copy-exposed-to-buffer' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1903 Duplicate outline, sans concealed text, to |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1904 buffer with name derived from derived from that |
79939 | 1905 of current buffer -- \"*BUFFERNAME exposed*\". |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1906 \\[allout-flatten-exposed-to-buffer] `allout-flatten-exposed-to-buffer' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1907 Like above 'copy-exposed', but convert topic |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1908 prefixes to section.subsection... numeric |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1909 format. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1910 \\[eval-expression] (allout-init t) Setup Emacs session for outline mode |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1911 auto-activation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1912 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1913 Topic Encryption |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1914 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1915 Outline mode supports gpg encryption of topics, with support for |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1916 symmetric and key-pair modes, and auto-encryption of topics |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1917 pending encryption on save. |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1918 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1919 Topics pending encryption are, by default, automatically |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1920 encrypted during file saves, including checkpoint saves, to avoid |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1921 exposing the plain text of encrypted topics in the file system. |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1922 If the content of the topic containing the cursor was encrypted |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
1923 for a save, it is automatically decrypted for continued editing. |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1924 |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1925 NOTE: A few GnuPG v2 versions improperly preserve incorrect |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1926 symmetric decryption keys, preventing entry of the correct key on |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1927 subsequent decryption attempts until the cache times-out. That |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1928 can take several minutes. \(Decryption of other entries is not |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1929 affected.) Upgrade your EasyPG version, if you can, and you can |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1930 deliberately clear your gpg-agent's cache by sending it a '-HUP' |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1931 signal. |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
1932 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1933 See `allout-toggle-current-subtree-encryption' function docstring |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1934 and `allout-encrypt-unencrypted-on-saves' customization variable |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1935 for details. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1936 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1937 HOT-SPOT Operation |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1938 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1939 Hot-spot operation provides a means for easy, single-keystroke outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1940 navigation and exposure control. |
3430 | 1941 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1942 When the text cursor is positioned directly on the bullet character of |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1943 a topic, regular characters (a to z) invoke the commands of the |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1944 corresponding allout-mode keymap control chars. For example, \"f\" |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1945 would invoke the command typically bound to \"C-c<space>C-f\" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
1946 \(\\[allout-forward-current-level] `allout-forward-current-level'). |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1947 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1948 Thus, by positioning the cursor on a topic bullet, you can |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1949 execute the outline navigation and manipulation commands with a |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1950 single keystroke. Regular navigation keys (eg, \\[forward-char], \\[next-line]) don't get |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
1951 this special translation, so you can use them to get out of the |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1952 hot-spot and back to normal editing operation. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1953 |
99841
fd7d46b20afe
* allout.el (allout-mode): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
95241
diff
changeset
|
1954 In allout-mode, the normal beginning-of-line command (\\[allout-beginning-of-line]) is |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1955 replaced with one that makes it easy to get to the hot-spot. If you |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1956 repeat it immediately it cycles (if `allout-beginning-of-line-cycles' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1957 is set) to the beginning of the item and then, if you hit it again |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1958 immediately, to the hot-spot. Similarly, `allout-beginning-of-current-entry' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1959 \(\\[allout-beginning-of-current-entry]) moves to the hot-spot when the cursor is already located |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1960 at the beginning of the current entry. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1961 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1962 Extending Allout |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1963 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1964 Allout exposure and authoring activites all have associated |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1965 hooks, by which independent code can cooperate with allout |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1966 without changes to the allout core. Here are key ones: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1967 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1968 `allout-mode-hook' |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1969 `allout-mode-deactivate-hook' \(deprecated) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
1970 `allout-mode-off-hook' |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1971 `allout-exposure-change-hook' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1972 `allout-structure-added-hook' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1973 `allout-structure-deleted-hook' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1974 `allout-structure-shifted-hook' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1975 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1976 Terminology |
3430 | 1977 |
79939 | 1978 Topic hierarchy constituents -- TOPICS and SUBTOPICS: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1979 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1980 ITEM: A unitary outline element, including the HEADER and ENTRY text. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1981 TOPIC: An ITEM and any ITEMs contained within it, ie having greater DEPTH |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1982 and with no intervening items of lower DEPTH than the container. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1983 CURRENT ITEM: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1984 The visible ITEM most immediately containing the cursor. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1985 DEPTH: The degree of nesting of an ITEM; it increases with containment. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1986 The DEPTH is determined by the HEADER PREFIX. The DEPTH is also |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1987 called the: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1988 LEVEL: The same as DEPTH. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1989 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1990 ANCESTORS: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1991 Those ITEMs whose TOPICs contain an ITEM. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1992 PARENT: An ITEM's immediate ANCESTOR. It has a DEPTH one less than that |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1993 of the ITEM. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
1994 OFFSPRING: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1995 The ITEMs contained within an ITEM's TOPIC. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
1996 SUBTOPIC: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1997 An OFFSPRING of its ANCESTOR TOPICs. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1998 CHILD: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
1999 An immediate SUBTOPIC of its PARENT. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2000 SIBLINGS: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2001 TOPICs having the same PARENT and DEPTH. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2002 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2003 Topic text constituents: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2004 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2005 HEADER: The first line of an ITEM, include the ITEM PREFIX and HEADER |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2006 text. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2007 ENTRY: The text content of an ITEM, before any OFFSPRING, but including |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2008 the HEADER text and distinct from the ITEM PREFIX. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2009 BODY: Same as ENTRY. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2010 PREFIX: The leading text of an ITEM which distinguishes it from normal |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2011 ENTRY text. Allout recognizes the outline structure according |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2012 to the strict PREFIX format. It consists of a PREFIX-LEAD string, |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2013 PREFIX-PADDING, and a BULLET. The BULLET might be followed by a |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2014 number, indicating the ordinal number of the topic among its |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2015 siblings, or an asterisk indicating encryption, plus an optional |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2016 space. After that is the ITEM HEADER text, which is not part of |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2017 the PREFIX. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2018 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2019 The relative length of the PREFIX determines the nesting DEPTH |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2020 of the ITEM. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2021 PREFIX-LEAD: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2022 The string at the beginning of a HEADER PREFIX, by default a `.'. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2023 It can be customized by changing the setting of |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2024 `allout-header-prefix' and then reinitializing `allout-mode'. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2025 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2026 When the PREFIX-LEAD is set to the comment-string of a |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2027 programming language, outline structuring can be embedded in |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2028 program code without interfering with processing of the text |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2029 (by emacs or the language processor) as program code. This |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2030 setting happens automatically when allout mode is used in |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2031 programming-mode buffers. See `allout-use-mode-specific-leader' |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2032 docstring for more detail. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2033 PREFIX-PADDING: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2034 Spaces or asterisks which separate the PREFIX-LEAD and the |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2035 bullet, determining the ITEM's DEPTH. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2036 BULLET: A character at the end of the ITEM PREFIX, it must be one of |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2037 the characters listed on `allout-plain-bullets-string' or |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2038 `allout-distinctive-bullets-string'. When creating a TOPIC, |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2039 plain BULLETs are by default used, according to the DEPTH of the |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2040 TOPIC. Choice among the distinctive BULLETs is offered when you |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2041 provide a universal argugment \(\\[universal-argument]) to the |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2042 TOPIC creation command, or when explictly rebulleting a TOPIC. The |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2043 significance of the various distinctive bullets is purely by |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2044 convention. See the documentation for the above bullet strings for |
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2045 more details. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2046 EXPOSURE: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2047 The state of a TOPIC which determines the on-screen visibility |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2048 of its OFFSPRING and contained ENTRY text. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2049 CONCEALED: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2050 TOPICs and ENTRY text whose EXPOSURE is inhibited. Concealed |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2051 text is represented by \"...\" ellipses. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2052 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2053 CONCEALED TOPICs are effectively collapsed within an ANCESTOR. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2054 CLOSED: A TOPIC whose immediate OFFSPRING and body-text is CONCEALED. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2055 OPEN: A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2056 ;;;_ . Code |
3430 | 2057 (interactive "P") |
2058 | |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2059 (let ((write-file-hook-var-name (cond ((boundp 'write-file-functions) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2060 'write-file-functions) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2061 ((boundp 'write-file-hooks) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2062 'write-file-hooks) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2063 (t 'local-write-file-hooks))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2064 (use-layout (if (listp allout-layout) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2065 allout-layout |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2066 allout-default-layout))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2067 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2068 (if (and (allout-mode-p) (not force)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2069 (progn |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2070 ;; Deactivation: |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2071 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2072 ; Activation not explicitly |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2073 ; requested, and either in |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2074 ; active state or *de*activation |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2075 ; specifically requested: |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2076 (allout-do-resumptions) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2077 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2078 (remove-from-invisibility-spec '(allout . t)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2079 (remove-hook 'pre-command-hook 'allout-pre-command-business t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2080 (remove-hook 'post-command-hook 'allout-post-command-business t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2081 (remove-hook 'before-change-functions 'allout-before-change-handler t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2082 (remove-hook 'isearch-mode-end-hook 'allout-isearch-end-handler t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2083 (remove-hook write-file-hook-var-name 'allout-write-file-hook-handler |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2084 t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2085 (remove-hook 'auto-save-hook 'allout-auto-save-hook-handler t) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2086 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2087 (remove-overlays (point-min) (point-max) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2088 'category 'allout-exposure-category) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2089 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2090 (setq allout-mode nil) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2091 (run-hooks 'allout-mode-deactivate-hook) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2092 (run-hooks 'allout-mode-off-hook)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2093 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2094 ;; Activation: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2095 (if allout-old-style-prefixes |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2096 ;; Inhibit all the fancy formatting: |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2097 (allout-add-resumptions '(allout-primary-bullet "*"))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2098 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2099 (allout-overlay-preparations) ; Doesn't hurt to redo this. |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2100 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2101 (allout-infer-header-lead-and-primary-bullet) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2102 (allout-infer-body-reindent) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2103 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2104 (set-allout-regexp) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2105 (allout-add-resumptions '(allout-encryption-ciphertext-rejection-regexps |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2106 allout-line-boundary-regexp |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2107 extend) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2108 '(allout-encryption-ciphertext-rejection-regexps |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2109 allout-bob-regexp |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2110 extend)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2111 |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2112 ;; Produce map from current version of allout-keybindings-list: |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2113 (allout-setup-mode-map) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2114 (produce-allout-mode-menubar-entries) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2115 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2116 ;; Include on minor-mode-map-alist, if not already there: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2117 (if (not (member '(allout-mode . allout-mode-map) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2118 minor-mode-map-alist)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2119 (setq minor-mode-map-alist |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2120 (cons '(allout-mode . allout-mode-map) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2121 minor-mode-map-alist))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2122 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2123 (add-to-invisibility-spec '(allout . t)) |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
2124 |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2125 (allout-add-resumptions '(line-move-ignore-invisible t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2126 (add-hook 'pre-command-hook 'allout-pre-command-business nil t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2127 (add-hook 'post-command-hook 'allout-post-command-business nil t) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2128 (add-hook 'before-change-functions 'allout-before-change-handler nil t) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2129 (add-hook 'isearch-mode-end-hook 'allout-isearch-end-handler nil t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2130 (add-hook write-file-hook-var-name 'allout-write-file-hook-handler |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2131 nil t) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2132 (add-hook 'auto-save-hook 'allout-auto-save-hook-handler nil t) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2133 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2134 ;; Stash auto-fill settings and adjust so custom allout auto-fill |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2135 ;; func will be used if auto-fill is active or activated. (The |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2136 ;; custom func respects topic headline, maintains hanging-indents, |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2137 ;; etc.) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2138 (allout-add-resumptions (list 'allout-former-auto-filler |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2139 auto-fill-function) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2140 ;; Register allout-auto-fill to be used if |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2141 ;; filling is active: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2142 (list 'allout-outside-normal-auto-fill-function |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2143 normal-auto-fill-function) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2144 '(normal-auto-fill-function allout-auto-fill) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2145 ;; Paragraphs are broken by topic headlines. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2146 (list 'paragraph-start |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2147 (concat paragraph-start "\\|^\\(" |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2148 allout-regexp "\\)")) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2149 (list 'paragraph-separate |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2150 (concat paragraph-separate "\\|^\\(" |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2151 allout-regexp "\\)"))) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2152 (if (and auto-fill-function (not allout-inhibit-auto-fill)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2153 ;; allout-auto-fill will use the stashed values and so forth. |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2154 (allout-add-resumptions '(auto-fill-function allout-auto-fill))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2155 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2156 (or (assq 'allout-mode minor-mode-alist) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2157 (setq minor-mode-alist |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
2158 (cons '(allout-mode " Allout") minor-mode-alist))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2159 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2160 (allout-setup-menubar) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2161 (setq allout-mode t) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2162 (run-hooks 'allout-mode-hook) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2163 |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2164 ;; Do auto layout if warranted: |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2165 (when (and allout-layout |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2166 allout-auto-activation |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2167 use-layout |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2168 (and (not (eq allout-auto-activation 'activate)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2169 (if (eq allout-auto-activation 'ask) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2170 (if (y-or-n-p (format "Expose %s with layout '%s'? " |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2171 (buffer-name) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2172 use-layout)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2173 t |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2174 (message "Skipped %s layout." (buffer-name)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2175 nil) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2176 t))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2177 (save-excursion |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2178 (message "Adjusting '%s' exposure..." (buffer-name)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2179 (goto-char 0) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2180 (allout-this-or-next-heading) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2181 (condition-case err |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2182 (progn |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2183 (apply 'allout-expose-topic (list use-layout)) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2184 (message "Adjusting '%s' exposure... done." |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2185 (buffer-name))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2186 ;; Problem applying exposure -- notify user, but don't |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2187 ;; interrupt, eg, file visit: |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2188 (error (message "%s" (car (cdr err))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2189 (sit-for 1)))) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2190 ) ; when allout-layout |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2191 ) ; if (allout-mode-p) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2192 ) ; let (()) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2193 ) ; define-minor-mode |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2194 ;;;_ > allout-minor-mode alias |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2195 (defalias 'allout-minor-mode 'allout-mode) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2196 ;;;_ > allout-setup-mode-map ()) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2197 (defun allout-setup-mode-map () |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2198 "Establish allout-mode bindings." |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2199 (setq-default allout-mode-map |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2200 (produce-allout-mode-map |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2201 (allout-mode-map-adjustments allout-keybindings-list))) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2202 (setq allout-mode-map |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2203 (produce-allout-mode-map |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2204 (allout-mode-map-adjustments allout-keybindings-list))) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2205 (substitute-key-definition 'beginning-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2206 'allout-beginning-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2207 allout-mode-map global-map) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2208 (substitute-key-definition 'move-beginning-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2209 'allout-beginning-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2210 allout-mode-map global-map) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2211 (substitute-key-definition 'end-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2212 'allout-end-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2213 allout-mode-map global-map) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2214 (substitute-key-definition 'move-end-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2215 'allout-end-of-line |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2216 allout-mode-map global-map) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2217 (fset 'allout-mode-map allout-mode-map)) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2218 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2219 ;; ensure that allout-mode-map has some setting even if allout-mode hasn't |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2220 ;; been invoked: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2221 (allout-setup-mode-map) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2222 |
69250
85c3b33d6427
Restablished intermediate missing comment header to preserve outline structure.
Eli Zaretskii <eliz@gnu.org>
parents:
69124
diff
changeset
|
2223 ;;;_ > allout-minor-mode |
85c3b33d6427
Restablished intermediate missing comment header to preserve outline structure.
Eli Zaretskii <eliz@gnu.org>
parents:
69124
diff
changeset
|
2224 (defalias 'allout-minor-mode 'allout-mode) |
68956
af2db645bc9d
(allout-hidden-p): Move this defsubts before
Eli Zaretskii <eliz@gnu.org>
parents:
68953
diff
changeset
|
2225 |
79920
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2226 ;;;_ > allout-unload-function |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2227 (defun allout-unload-function () |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2228 "Unload the allout outline library." |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2229 (save-current-buffer |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2230 (dolist (buffer (buffer-list)) |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2231 (set-buffer buffer) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
2232 (when (allout-mode-p) (allout-mode)))) |
79920
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2233 ;; continue standard unloading |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2234 nil) |
5096ade2d1f5
(allout-unload-function): New function.
Juanma Barranquero <lekktu@gmail.com>
parents:
79915
diff
changeset
|
2235 |
68956
af2db645bc9d
(allout-hidden-p): Move this defsubts before
Eli Zaretskii <eliz@gnu.org>
parents:
68953
diff
changeset
|
2236 ;;;_ - Position Assessment |
af2db645bc9d
(allout-hidden-p): Move this defsubts before
Eli Zaretskii <eliz@gnu.org>
parents:
68953
diff
changeset
|
2237 ;;;_ > allout-hidden-p (&optional pos) |
af2db645bc9d
(allout-hidden-p): Move this defsubts before
Eli Zaretskii <eliz@gnu.org>
parents:
68953
diff
changeset
|
2238 (defsubst allout-hidden-p (&optional pos) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2239 "Non-nil if the character after point was made invisible by allout." |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
2240 (eq (get-char-property (or pos (point)) 'invisible) 'allout)) |
68956
af2db645bc9d
(allout-hidden-p): Move this defsubts before
Eli Zaretskii <eliz@gnu.org>
parents:
68953
diff
changeset
|
2241 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2242 ;;;_ > allout-overlay-insert-in-front-handler (ol after beg end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2243 ;;; &optional prelen) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2244 (defun allout-overlay-insert-in-front-handler (ol after beg end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2245 &optional prelen) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2246 "Shift the overlay so stuff inserted in front of it is excluded." |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2247 (if after |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2248 ;; ??? Shouldn't moving the overlay should be unnecessary, if overlay |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2249 ;; front-advance on the overlay worked as expected? |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2250 (move-overlay ol (1+ beg) (overlay-end ol)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2251 ;;;_ > allout-overlay-interior-modification-handler (ol after beg end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2252 ;;; &optional prelen) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2253 (defun allout-overlay-interior-modification-handler (ol after beg end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2254 &optional prelen) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2255 "Get confirmation before making arbitrary changes to invisible text. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2256 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2257 We expose the invisible text and ask for confirmation. Refusal or |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
2258 `keyboard-quit' abandons the changes, with keyboard-quit additionally |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2259 reclosing the opened text. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2260 |
79939 | 2261 No confirmation is necessary when `inhibit-read-only' is set -- eg, allout |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2262 internal functions use this feature cohesively bunch changes." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2263 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2264 (when (and (not inhibit-read-only) (not after)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2265 (let ((start (point)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2266 (ol-start (overlay-start ol)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2267 (ol-end (overlay-end ol)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2268 first) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2269 (goto-char beg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2270 (while (< (point) end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2271 (when (allout-hidden-p) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2272 (allout-show-to-offshoot) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2273 (if (allout-hidden-p) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2274 (save-excursion (forward-char 1) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2275 (allout-show-to-offshoot))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2276 (when (not first) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2277 (setq first (point)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2278 (goto-char (if (featurep 'xemacs) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2279 (next-property-change (1+ (point)) nil end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2280 (next-char-property-change (1+ (point)) end)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2281 (when first |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2282 (goto-char first) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2283 (condition-case nil |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2284 (if (not |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2285 (yes-or-no-p |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2286 (substitute-command-keys |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
2287 (concat "Modify concealed text? (\"no\" just aborts," |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2288 " \\[keyboard-quit] also reconceals) ")))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2289 (progn (goto-char start) |
105170 | 2290 (error "Concealed-text change refused"))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2291 (quit (allout-flag-region ol-start ol-end nil) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2292 (allout-flag-region ol-start ol-end t) |
105170 | 2293 (error "Concealed-text change abandoned, text reconcealed")))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2294 (goto-char start)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2295 ;;;_ > allout-before-change-handler (beg end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2296 (defun allout-before-change-handler (beg end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2297 "Protect against changes to invisible text. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2298 |
79939 | 2299 See `allout-overlay-interior-modification-handler' for details." |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2300 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2301 (if (and (allout-mode-p) undo-in-progress (allout-hidden-p)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2302 (allout-show-to-offshoot)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2303 |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2304 ;; allout-overlay-interior-modification-handler on an overlay handles |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2305 ;; this in other emacs, via `allout-exposure-category's 'modification-hooks. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2306 (when (and (featurep 'xemacs) (allout-mode-p)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
2307 ;; process all of the pending overlays: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2308 (save-excursion |
78915
e7a2828a162d
(allout-before-change-handler): Replace got-char by goto-char.
Martin Rudalics <rudalics@gmx.at>
parents:
78492
diff
changeset
|
2309 (goto-char beg) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2310 (let ((overlay (allout-get-invisibility-overlay))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2311 (if overlay |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2312 (allout-overlay-interior-modification-handler |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2313 overlay nil beg end nil)))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2314 ;;;_ > allout-isearch-end-handler (&optional overlay) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2315 (defun allout-isearch-end-handler (&optional overlay) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2316 "Reconcile allout outline exposure on arriving in hidden text after isearch. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2317 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2318 Optional OVERLAY parameter is for when this function is used by |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2319 `isearch-open-invisible' overlay property. It is otherwise unused, so this |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2320 function can also be used as an `isearch-mode-end-hook'." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2321 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2322 (if (and (allout-mode-p) (allout-hidden-p)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2323 (allout-show-to-offshoot))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2324 |
79939 | 2325 ;;;_ #3 Internal Position State-Tracking -- "allout-recent-*" funcs |
108209
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2326 ;; All the basic outline functions that directly do string matches to |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2327 ;; evaluate heading prefix location set the variables |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2328 ;; `allout-recent-prefix-beginning' and `allout-recent-prefix-end' |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2329 ;; when successful. Functions starting with `allout-recent-' all |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2330 ;; use this state, providing the means to avoid redundant searches |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2331 ;; for just-established data. This optimization can provide |
b757d9aee37e
* allout.el: Fix commenting convention.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
106815
diff
changeset
|
2332 ;; significant speed improvement, but it must be employed carefully. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2333 ;;;_ = allout-recent-prefix-beginning |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2334 (defvar allout-recent-prefix-beginning 0 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2335 "Buffer point of the start of the last topic prefix encountered.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2336 (make-variable-buffer-local 'allout-recent-prefix-beginning) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2337 ;;;_ = allout-recent-prefix-end |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2338 (defvar allout-recent-prefix-end 0 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2339 "Buffer point of the end of the last topic prefix encountered.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2340 (make-variable-buffer-local 'allout-recent-prefix-end) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2341 ;;;_ = allout-recent-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2342 (defvar allout-recent-depth 0 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2343 "Depth of the last topic prefix encountered.") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2344 (make-variable-buffer-local 'allout-recent-depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2345 ;;;_ = allout-recent-end-of-subtree |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2346 (defvar allout-recent-end-of-subtree 0 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2347 "Buffer point last returned by `allout-end-of-current-subtree'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2348 (make-variable-buffer-local 'allout-recent-end-of-subtree) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2349 ;;;_ > allout-prefix-data () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2350 (defsubst allout-prefix-data () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2351 "Register allout-prefix state data. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2352 |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
2353 For reference by `allout-recent' funcs. Return |
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
2354 the new value of `allout-recent-prefix-beginning'." |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2355 (setq allout-recent-prefix-end (or (match-end 1) (match-end 2) (match-end 3)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2356 allout-recent-prefix-beginning (or (match-beginning 1) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2357 (match-beginning 2) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2358 (match-beginning 3)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2359 allout-recent-depth (max 1 (- allout-recent-prefix-end |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2360 allout-recent-prefix-beginning |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2361 allout-header-subtraction))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2362 allout-recent-prefix-beginning) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2363 ;;;_ > nullify-allout-prefix-data () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2364 (defsubst nullify-allout-prefix-data () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2365 "Mark allout prefix data as being uninformative." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2366 (setq allout-recent-prefix-end (point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2367 allout-recent-prefix-beginning (point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2368 allout-recent-depth 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2369 allout-recent-prefix-beginning) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2370 ;;;_ > allout-recent-depth () |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2371 (defsubst allout-recent-depth () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2372 "Return depth of last heading encountered by an outline maneuvering function. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2373 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2374 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2375 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2376 `allout-recent-prefix-end' if successful. This function uses those settings |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2377 to return the current depth." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2378 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2379 allout-recent-depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2380 ;;;_ > allout-recent-prefix () |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2381 (defsubst allout-recent-prefix () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2382 "Like `allout-recent-depth', but returns text of last encountered prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2383 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2384 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2385 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2386 `allout-recent-prefix-end' if successful. This function uses those settings |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2387 to return the current prefix." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2388 (buffer-substring-no-properties allout-recent-prefix-beginning |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2389 allout-recent-prefix-end)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2390 ;;;_ > allout-recent-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2391 (defmacro allout-recent-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2392 "Like allout-recent-prefix, but returns bullet of last encountered prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2393 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2394 All outline functions which directly do string matches to assess |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2395 headings set the variables `allout-recent-prefix-beginning' and |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
2396 `allout-recent-prefix-end' if successful. This function uses those settings |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2397 to return the current depth of the most recently matched topic." |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2398 '(buffer-substring-no-properties (1- allout-recent-prefix-end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2399 allout-recent-prefix-end)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2400 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2401 ;;;_ #4 Navigation |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2402 |
69250
85c3b33d6427
Restablished intermediate missing comment header to preserve outline structure.
Eli Zaretskii <eliz@gnu.org>
parents:
69124
diff
changeset
|
2403 ;;;_ - Position Assessment |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2404 ;;;_ : Location Predicates |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2405 ;;;_ > allout-do-doublecheck () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2406 (defsubst allout-do-doublecheck () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2407 "True if current item conditions qualify for checking on topic aberrance." |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2408 (and |
79939 | 2409 ;; presume integrity of outline and yanked content during yank -- necessary |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2410 ;; to allow for level disparity of yank location and yanked text: |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
2411 (not allout-inhibit-aberrance-doublecheck) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2412 ;; allout-doublecheck-at-and-shallower is ceiling for doublecheck: |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2413 (<= allout-recent-depth allout-doublecheck-at-and-shallower))) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2414 ;;;_ > allout-aberrant-container-p () |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2415 (defun allout-aberrant-container-p () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2416 "True if topic, or next sibling with children, contains them discontinuously. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2417 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2418 Discontinuous means an immediate offspring that is nested more |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2419 than one level deeper than the topic. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2420 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2421 If topic has no offspring, then the next sibling with offspring will |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2422 determine whether or not this one is determined to be aberrant. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2423 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2424 If true, then the allout-recent-* settings are calibrated on the |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2425 offspring that qaulifies it as aberrant, ie with depth that |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2426 exceeds the topic by more than one." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2427 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2428 ;; This is most clearly understood when considering standard-prefix-leader |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2429 ;; low-level topics, which can all too easily match text not intended as |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2430 ;; headers. For example, any line with a leading '.' or '*' and lacking a |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2431 ;; following bullet qualifies without this protection. (A sequence of |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2432 ;; them can occur naturally, eg a typical textual bullet list.) We |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2433 ;; disqualify such low-level sequences when they are followed by a |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2434 ;; discontinuously contained child, inferring that the sequences are not |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2435 ;; actually connected with their prospective context. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2436 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2437 (let ((depth (allout-depth)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2438 (start-point (point)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2439 done aberrant) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2440 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2441 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2442 (while (and (not done) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2443 (re-search-forward allout-line-boundary-regexp nil 0)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2444 (allout-prefix-data) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2445 (goto-char allout-recent-prefix-beginning) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2446 (cond |
88056 | 2447 ;; sibling -- continue: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2448 ((eq allout-recent-depth depth)) |
88056 | 2449 ;; first offspring is excessive -- aberrant: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2450 ((> allout-recent-depth (1+ depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2451 (setq done t aberrant t)) |
88056 | 2452 ;; next non-sibling is lower-depth -- not aberrant: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2453 (t (setq done t)))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2454 (if aberrant |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2455 aberrant |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2456 (goto-char start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2457 ;; recalibrate allout-recent-* |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2458 (allout-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2459 nil))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2460 ;;;_ > allout-on-current-heading-p () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2461 (defun allout-on-current-heading-p () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2462 "Return non-nil if point is on current visible topics' header line. |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2463 |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2464 Actually, returns prefix beginning point." |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2465 (save-excursion |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2466 (allout-beginning-of-current-line) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2467 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2468 (and (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2469 (allout-prefix-data) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2470 (or (not (allout-do-doublecheck)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2471 (not (allout-aberrant-container-p))))))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2472 ;;;_ > allout-on-heading-p () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2473 (defalias 'allout-on-heading-p 'allout-on-current-heading-p) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2474 ;;;_ > allout-e-o-prefix-p () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2475 (defun allout-e-o-prefix-p () |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2476 "True if point is located where current topic prefix ends, heading begins." |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2477 (and (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2478 (save-excursion (let ((inhibit-field-text-motion t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2479 (beginning-of-line)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2480 (looking-at allout-regexp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2481 (= (point) (save-excursion (allout-end-of-prefix)(point)))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2482 ;;;_ : Location attributes |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2483 ;;;_ > allout-depth () |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2484 (defun allout-depth () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2485 "Return depth of topic most immediately containing point. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2486 |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2487 Does not do doublecheck for aberrant topic header. |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2488 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2489 Return zero if point is not within any topic. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2490 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2491 Like `allout-current-depth', but respects hidden as well as visible topics." |
29490 | 2492 (save-excursion |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2493 (let ((start-point (point))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2494 (if (and (allout-goto-prefix) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2495 (not (< start-point (point)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2496 allout-recent-depth |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2497 (progn |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2498 ;; Oops, no prefix, nullify it: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2499 (nullify-allout-prefix-data) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2500 ;; ... and return 0: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2501 0))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2502 ;;;_ > allout-current-depth () |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2503 (defun allout-current-depth () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2504 "Return depth of visible topic most immediately containing point. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2505 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2506 Return zero if point is not within any topic." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2507 (save-excursion |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2508 (if (allout-back-to-current-heading) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2509 (max 1 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2510 (- allout-recent-prefix-end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2511 allout-recent-prefix-beginning |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2512 allout-header-subtraction)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2513 0))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2514 ;;;_ > allout-get-current-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2515 (defun allout-get-current-prefix () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2516 "Topic prefix of the current topic." |
3430 | 2517 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2518 (if (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2519 (allout-recent-prefix)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2520 ;;;_ > allout-get-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2521 (defun allout-get-bullet () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2522 "Return bullet of containing topic (visible or not)." |
3430 | 2523 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2524 (and (allout-goto-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2525 (allout-recent-bullet)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2526 ;;;_ > allout-current-bullet () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2527 (defun allout-current-bullet () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2528 "Return bullet of current (visible) topic heading, or none if none found." |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2529 (condition-case nil |
3430 | 2530 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2531 (allout-back-to-current-heading) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2532 (buffer-substring-no-properties (- allout-recent-prefix-end 1) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2533 allout-recent-prefix-end)) |
3430 | 2534 ;; Quick and dirty provision, ostensibly for missing bullet: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2535 (args-out-of-range nil)) |
3430 | 2536 ) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2537 ;;;_ > allout-get-prefix-bullet (prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2538 (defun allout-get-prefix-bullet (prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2539 "Return the bullet of the header prefix string PREFIX." |
3430 | 2540 ;; Doesn't make sense if we're old-style prefixes, but this just |
2541 ;; oughtn't be called then, so forget about it... | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2542 (if (string-match allout-regexp prefix) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2543 (substring prefix (1- (match-end 2)) (match-end 2)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2544 ;;;_ > allout-sibling-index (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2545 (defun allout-sibling-index (&optional depth) |
29490 | 2546 "Item number of this prospective topic among its siblings. |
2547 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2548 If optional arg DEPTH is greater than current depth, then we're |
29490 | 2549 opening a new level, and return 0. |
2550 | |
2551 If less than this depth, ascend to that depth and count..." | |
2552 | |
2553 (save-excursion | |
2554 (cond ((and depth (<= depth 0) 0)) | |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2555 ((or (null depth) (= depth (allout-depth))) |
29490 | 2556 (let ((index 1)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2557 (while (allout-previous-sibling allout-recent-depth nil) |
29490 | 2558 (setq index (1+ index))) |
2559 index)) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2560 ((< depth allout-recent-depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2561 (allout-ascend-to-depth depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2562 (allout-sibling-index)) |
29490 | 2563 (0)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2564 ;;;_ > allout-topic-flat-index () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2565 (defun allout-topic-flat-index () |
29490 | 2566 "Return a list indicating point's numeric section.subsect.subsubsect... |
2567 Outermost is first." | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2568 (let* ((depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2569 (next-index (allout-sibling-index depth)) |
29490 | 2570 (rev-sibls nil)) |
2571 (while (> next-index 0) | |
2572 (setq rev-sibls (cons next-index rev-sibls)) | |
2573 (setq depth (1- depth)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2574 (setq next-index (allout-sibling-index depth))) |
29490 | 2575 rev-sibls) |
2576 ) | |
3430 | 2577 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2578 ;;;_ - Navigation routines |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2579 ;;;_ > allout-beginning-of-current-line () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2580 (defun allout-beginning-of-current-line () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2581 "Like beginning of line, but to visible text." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2582 |
71915
9315116570f0
(allout-run-unit-tests-on-load): Rectified docstring grammar.
Nick Roberts <nickrob@snap.net.nz>
parents:
71893
diff
changeset
|
2583 ;; This combination of move-beginning-of-line and beginning-of-line is |
9315116570f0
(allout-run-unit-tests-on-load): Rectified docstring grammar.
Nick Roberts <nickrob@snap.net.nz>
parents:
71893
diff
changeset
|
2584 ;; deliberate, but the (beginning-of-line) may now be superfluous. |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2585 (let ((inhibit-field-text-motion t)) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2586 (move-beginning-of-line 1) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2587 (beginning-of-line) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2588 (while (and (not (bobp)) (or (not (bolp)) (allout-hidden-p))) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2589 (beginning-of-line) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2590 (if (or (allout-hidden-p) (not (bolp))) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2591 (forward-char -1))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2592 ;;;_ > allout-end-of-current-line () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2593 (defun allout-end-of-current-line () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2594 "Move to the end of line, past concealed text if any." |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2595 ;; This is for symmetry with `allout-beginning-of-current-line' -- |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2596 ;; `move-end-of-line' doesn't suffer the same problem as |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2597 ;; `move-beginning-of-line'. |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2598 (let ((inhibit-field-text-motion t)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2599 (end-of-line) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2600 (while (allout-hidden-p) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2601 (end-of-line) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
2602 (if (allout-hidden-p) (forward-char 1))))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2603 ;;;_ > allout-beginning-of-line () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2604 (defun allout-beginning-of-line () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2605 "Beginning-of-line with `allout-beginning-of-line-cycles' behavior, if set." |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2606 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2607 (interactive) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2608 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2609 (if (or (not allout-beginning-of-line-cycles) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2610 (not (equal last-command this-command))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2611 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2612 (if (and (not (bolp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2613 (allout-hidden-p (1- (point)))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2614 (goto-char (allout-previous-single-char-property-change |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2615 (1- (point)) 'invisible))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2616 (move-beginning-of-line 1)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2617 (allout-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2618 (let ((beginning-of-body |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2619 (save-excursion |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2620 (while (and (allout-do-doublecheck) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2621 (allout-aberrant-container-p) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2622 (allout-previous-visible-heading 1))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2623 (allout-beginning-of-current-entry) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2624 (point)))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2625 (cond ((= (current-column) 0) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2626 (goto-char beginning-of-body)) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2627 ((< (point) beginning-of-body) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2628 (allout-beginning-of-current-line)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2629 ((= (point) beginning-of-body) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2630 (goto-char (allout-current-bullet-pos))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2631 (t (allout-beginning-of-current-line) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2632 (if (< (point) beginning-of-body) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2633 ;; we were on the headline after its start: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2634 (goto-char beginning-of-body))))))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2635 ;;;_ > allout-end-of-line () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2636 (defun allout-end-of-line () |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2637 "End-of-line with `allout-end-of-line-cycles' behavior, if set." |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2638 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2639 (interactive) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2640 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2641 (if (or (not allout-end-of-line-cycles) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2642 (not (equal last-command this-command))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2643 (allout-end-of-current-line) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2644 (let ((end-of-entry (save-excursion |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2645 (allout-end-of-entry) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2646 (point)))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2647 (cond ((not (eolp)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2648 (allout-end-of-current-line)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2649 ((or (allout-hidden-p) (save-excursion |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2650 (forward-char -1) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2651 (allout-hidden-p))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2652 (allout-back-to-current-heading) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2653 (allout-show-current-entry) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2654 (allout-show-children) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2655 (allout-end-of-entry)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2656 ((>= (point) end-of-entry) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2657 (allout-back-to-current-heading) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2658 (allout-end-of-current-line)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2659 (t |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2660 (if (not (allout-mark-active-p)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2661 (push-mark)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2662 (allout-end-of-entry)))))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2663 ;;;_ > allout-mark-active-p () |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2664 (defun allout-mark-active-p () |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2665 "True if the mark is currently or always active." |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2666 ;; `(cond (boundp...))' (or `(if ...)') invokes special byte-compiler |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2667 ;; provisions, at least in fsf emacs to prevent warnings about lack of, |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2668 ;; eg, region-active-p. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2669 (cond ((boundp 'mark-active) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2670 mark-active) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2671 ((fboundp 'region-active-p) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2672 (region-active-p)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2673 (t))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2674 ;;;_ > allout-next-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2675 (defsubst allout-next-heading () |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2676 "Move to the heading for the topic (possibly invisible) after this one. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2677 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2678 Returns the location of the heading, or nil if none found. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2679 |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
2680 We skip anomalous low-level topics, a la `allout-aberrant-container-p'." |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2681 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2682 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2683 (if (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2684 (forward-char 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2685 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2686 (when (re-search-forward allout-line-boundary-regexp nil 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2687 (allout-prefix-data) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2688 (goto-char allout-recent-prefix-beginning) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2689 (while (not (bolp)) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2690 (forward-char -1)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2691 (and (allout-do-doublecheck) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2692 ;; this will set allout-recent-* on the first non-aberrant topic, |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2693 ;; whether it's the current one or one that disqualifies it: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2694 (allout-aberrant-container-p)) |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
2695 ;; this may or may not be the same as above depending on doublecheck: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2696 (goto-char allout-recent-prefix-beginning)))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2697 ;;;_ > allout-this-or-next-heading |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2698 (defun allout-this-or-next-heading () |
7527
1f09079e18c4
(outline-mode): Use outline-this-or-next-heading.
Richard M. Stallman <rms@gnu.org>
parents:
7476
diff
changeset
|
2699 "Position cursor on current or next heading." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2700 ;; A throwaway non-macro that is defined after allout-next-heading |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2701 ;; and usable by allout-mode. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2702 (if (not (allout-goto-prefix-doublechecked)) (allout-next-heading))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2703 ;;;_ > allout-previous-heading () |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
2704 (defun allout-previous-heading () |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2705 "Move to the prior (possibly invisible) heading line. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2706 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2707 Return the location of the beginning of the heading, or nil if not found. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2708 |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
2709 We skip anomalous low-level topics, a la `allout-aberrant-container-p'." |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2710 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2711 (if (bobp) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2712 nil |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2713 (let ((start-point (point))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2714 ;; allout-goto-prefix-doublechecked calls us, so we can't use it here. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2715 (allout-goto-prefix) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2716 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2717 (when (or (re-search-backward allout-line-boundary-regexp nil 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2718 (looking-at allout-bob-regexp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2719 (goto-char (allout-prefix-data)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2720 (if (and (allout-do-doublecheck) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2721 (allout-aberrant-container-p)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2722 (or (allout-previous-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2723 (and (goto-char start-point) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2724 ;; recalibrate allout-recent-*: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2725 (allout-depth) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2726 nil)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2727 (point))))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2728 ;;;_ > allout-get-invisibility-overlay () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2729 (defun allout-get-invisibility-overlay () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2730 "Return the overlay at point that dictates allout invisibility." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2731 (let ((overlays (overlays-at (point))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2732 got) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2733 (while (and overlays (not got)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2734 (if (equal (overlay-get (car overlays) 'invisible) 'allout) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2735 (setq got (car overlays)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2736 (pop overlays))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2737 got)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2738 ;;;_ > allout-back-to-visible-text () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2739 (defun allout-back-to-visible-text () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2740 "Move to most recent prior character that is visible, and return point." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2741 (if (allout-hidden-p) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2742 (goto-char (overlay-start (allout-get-invisibility-overlay)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2743 (point)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2744 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2745 ;;;_ - Subtree Charting |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2746 ;;;_ " These routines either produce or assess charts, which are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2747 ;;; nested lists of the locations of topics within a subtree. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2748 ;;; |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2749 ;;; Charts enable efficient subtree navigation by providing a reusable basis |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2750 ;;; for elaborate, compound assessment and adjustment of a subtree. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2751 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2752 ;;;_ > allout-chart-subtree (&optional levels visible orig-depth prev-depth) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2753 (defun allout-chart-subtree (&optional levels visible orig-depth prev-depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2754 "Produce a location \"chart\" of subtopics of the containing topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2755 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2756 Optional argument LEVELS specifies a depth limit (relative to start |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2757 depth) for the chart. Null LEVELS means no limit. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2758 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2759 When optional argument VISIBLE is non-nil, the chart includes |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2760 only the visible subelements of the charted subjects. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2761 |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2762 The remaining optional args are for internal use by the function. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2763 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2764 Point is left at the end of the subtree. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2765 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2766 Charts are used to capture outline structure, so that outline-altering |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2767 routines need assess the structure only once, and then use the chart |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2768 for their elaborate manipulations. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2769 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2770 The chart entries for the topics are in reverse order, so the |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2771 last topic is listed first. The entry for each topic consists of |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2772 an integer indicating the point at the beginning of the topic |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2773 prefix. Charts for offspring consists of a list containing, |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2774 recursively, the charts for the respective subtopics. The chart |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2775 for a topics' offspring precedes the entry for the topic itself. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2776 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2777 The other function parameters are for internal recursion, and should |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2778 not be specified by external callers. ORIG-DEPTH is depth of topic at |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
2779 starting point, and PREV-DEPTH is depth of prior topic." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2780 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2781 (let ((original (not orig-depth)) ; `orig-depth' set only in recursion. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2782 chart curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2783 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2784 (if original ; Just starting? |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2785 ; Register initial settings and |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2786 ; position to first offspring: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2787 (progn (setq orig-depth (allout-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2788 (or prev-depth (setq prev-depth (1+ orig-depth))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2789 (if visible |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2790 (allout-next-visible-heading 1) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2791 (allout-next-heading)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2792 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2793 ;; Loop over the current levels' siblings. Besides being more |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2794 ;; efficient than tail-recursing over a level, it avoids exceeding |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2795 ;; the typically quite constrained Emacs max-lisp-eval-depth. |
29490 | 2796 ;; |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2797 ;; Probably would speed things up to implement loop-based stack |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2798 ;; operation rather than recursing for lower levels. Bah. |
29490 | 2799 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2800 (while (and (not (eobp)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2801 ; Still within original topic? |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2802 (< orig-depth (setq curr-depth allout-recent-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2803 (cond ((= prev-depth curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2804 ;; Register this one and move on: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2805 (setq chart (cons allout-recent-prefix-beginning chart)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2806 (if (and levels (<= levels 1)) |
79939 | 2807 ;; At depth limit -- skip sublevels: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2808 (or (allout-next-sibling curr-depth) |
79939 | 2809 ;; or no more siblings -- proceed to |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2810 ;; next heading at lesser depth: |
7676
5b8a573e9f69
(outline-chart-subtree): Include outline-next-heading in loop conditions
Richard M. Stallman <rms@gnu.org>
parents:
7639
diff
changeset
|
2811 (while (and (<= curr-depth |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2812 allout-recent-depth) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2813 (if visible |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2814 (allout-next-visible-heading 1) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2815 (allout-next-heading))))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2816 (if visible |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2817 (allout-next-visible-heading 1) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2818 (allout-next-heading)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2819 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2820 ((and (< prev-depth curr-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2821 (or (not levels) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2822 (> levels 0))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2823 ;; Recurse on deeper level of curr topic: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2824 (setq chart |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2825 (cons (allout-chart-subtree (and levels |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2826 (1- levels)) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2827 visible |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2828 orig-depth |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
2829 curr-depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2830 chart)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2831 ;; ... then continue with this one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2832 ) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2833 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2834 ;; ... else nil if we've ascended back to prev-depth. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2835 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2836 ))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2837 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2838 (if original ; We're at the last sibling on |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2839 ; the original level. Position |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2840 ; to the end of it: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2841 (progn (and (not (eobp)) (forward-char -1)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2842 (and (= (preceding-char) ?\n) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2843 (= (aref (buffer-substring (max 1 (- (point) 3)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2844 (point)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2845 1) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2846 ?\n) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2847 (forward-char -1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2848 (setq allout-recent-end-of-subtree (point)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
2849 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2850 chart ; (nreverse chart) not necessary, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2851 ; and maybe not preferable. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2852 )) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2853 ;;;_ > allout-chart-siblings (&optional start end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2854 (defun allout-chart-siblings (&optional start end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2855 "Produce a list of locations of this and succeeding sibling topics. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2856 Effectively a top-level chart of siblings. See `allout-chart-subtree' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2857 for an explanation of charts." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2858 (save-excursion |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2859 (when (allout-goto-prefix-doublechecked) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2860 (let ((chart (list (point)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2861 (while (allout-next-sibling) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2862 (setq chart (cons (point) chart))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2863 (if chart (setq chart (nreverse chart))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2864 ;;;_ > allout-chart-to-reveal (chart depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2865 (defun allout-chart-to-reveal (chart depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2866 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2867 "Return a flat list of hidden points in subtree CHART, up to DEPTH. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2868 |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2869 If DEPTH is nil, include hidden points at any depth. |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2870 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2871 Note that point can be left at any of the points on chart, or at the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2872 start point." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2873 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2874 (let (result here) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2875 (while (and (or (null depth) (> depth 0)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2876 chart) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2877 (setq here (car chart)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2878 (if (listp here) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2879 (let ((further (allout-chart-to-reveal here (if (null depth) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2880 depth |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2881 (1- depth))))) |
79939 | 2882 ;; We're on the start of a subtree -- recurse with it, if there's |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2883 ;; more depth to go: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2884 (if further (setq result (append further result))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2885 (setq chart (cdr chart))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2886 (goto-char here) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2887 (if (allout-hidden-p) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2888 (setq result (cons here result))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2889 (setq chart (cdr chart)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2890 result)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2891 ;;;_ X allout-chart-spec (chart spec &optional exposing) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2892 ;; (defun allout-chart-spec (chart spec &optional exposing) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2893 ;; "Not yet (if ever) implemented. |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2894 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2895 ;; Produce exposure directives given topic/subtree CHART and an exposure SPEC. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2896 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2897 ;; Exposure spec indicates the locations to be exposed and the prescribed |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2898 ;; exposure status. Optional arg EXPOSING is an integer, with 0 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2899 ;; indicating pending concealment, anything higher indicating depth to |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2900 ;; which subtopic headers should be exposed, and negative numbers |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2901 ;; indicating (negative of) the depth to which subtopic headers and |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2902 ;; bodies should be exposed. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2903 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2904 ;; The produced list can have two types of entries. Bare numbers |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2905 ;; indicate points in the buffer where topic headers that should be |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2906 ;; exposed reside. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2907 |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2908 ;; - bare negative numbers indicates that the topic starting at the |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2909 ;; point which is the negative of the number should be opened, |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2910 ;; including their entries. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2911 ;; - bare positive values indicate that this topic header should be |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2912 ;; opened. |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2913 ;; - Lists signify the beginning and end points of regions that should |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2914 ;; be flagged, and the flag to employ. (For concealment: `(\?r)', and |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2915 ;; exposure:" |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2916 ;; (while spec |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2917 ;; (cond ((listp spec) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2918 ;; ) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2919 ;; ) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2920 ;; (setq spec (cdr spec))) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
2921 ;; ) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2922 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2923 ;;;_ - Within Topic |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2924 ;;;_ > allout-goto-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2925 (defun allout-goto-prefix () |
29490 | 2926 "Put point at beginning of immediately containing outline topic. |
2927 | |
2928 Goes to most immediate subsequent topic if none immediately containing. | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2929 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2930 Not sensitive to topic visibility. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2931 |
46161
29f1f32aee5b
(outline-goto-prefix): Fix typo.
Juanma Barranquero <lekktu@gmail.com>
parents:
44182
diff
changeset
|
2932 Returns the point at the beginning of the prefix, or nil if none." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2933 |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2934 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2935 (let (done) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2936 (while (and (not done) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2937 (search-backward "\n" nil 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2938 (forward-char 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2939 (if (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2940 (setq done (allout-prefix-data)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2941 (forward-char -1))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2942 (if (bobp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2943 (cond ((looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2944 (allout-prefix-data)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2945 ((allout-next-heading)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2946 (done)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2947 done)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2948 ;;;_ > allout-goto-prefix-doublechecked () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2949 (defun allout-goto-prefix-doublechecked () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2950 "Put point at beginning of immediately containing outline topic. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2951 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2952 Like `allout-goto-prefix', but shallow topics (according to |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2953 `allout-doublecheck-at-and-shallower') are checked and |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2954 disqualified for child containment discontinuity, according to |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
2955 `allout-aberrant-container-p'." |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2956 (if (allout-goto-prefix) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2957 (if (and (allout-do-doublecheck) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2958 (allout-aberrant-container-p)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2959 (allout-previous-heading) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2960 (point)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2961 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2962 ;;;_ > allout-end-of-prefix () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2963 (defun allout-end-of-prefix (&optional ignore-decorations) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2964 "Position cursor at beginning of header text. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2965 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2966 If optional IGNORE-DECORATIONS is non-nil, put just after bullet, |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
2967 otherwise skip white space between bullet and ensuing text." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2968 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2969 (if (not (allout-goto-prefix-doublechecked)) |
3430 | 2970 nil |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
2971 (goto-char allout-recent-prefix-end) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2972 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2973 (if ignore-decorations |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2974 t |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2975 (while (looking-at "[0-9]") (forward-char 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
2976 (if (and (not (eolp)) (looking-at "\\s-")) (forward-char 1)))) |
3430 | 2977 ;; Reestablish where we are: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2978 (allout-current-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2979 ;;;_ > allout-current-bullet-pos () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
2980 (defun allout-current-bullet-pos () |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
2981 "Return position of current (visible) topic's bullet." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2982 |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
2983 (if (not (allout-current-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
2984 nil |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
2985 (1- allout-recent-prefix-end))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2986 ;;;_ > allout-back-to-current-heading (&optional interactive) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2987 (defun allout-back-to-current-heading (&optional interactive) |
73315
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2988 "Move to heading line of current topic, or beginning if not in a topic. |
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2989 |
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2990 If interactive, we position at the end of the prefix. |
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2991 |
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2992 Return value of resulting point, unless we started outside |
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2993 of (before any) topics, in which case we return nil." |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2994 |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2995 (interactive "p") |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
2996 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
2997 (allout-beginning-of-current-line) |
73315
df3186ae0953
* allout.el (allout-back-to-current-heading): Base on lower-level
Chong Yidong <cyd@stupidchicken.com>
parents:
73201
diff
changeset
|
2998 (let ((bol-point (point))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
2999 (if (allout-goto-prefix-doublechecked) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3000 (if (<= (point) bol-point) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3001 (if interactive |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3002 (allout-end-of-prefix) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3003 (point)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3004 (goto-char (point-min)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3005 nil)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3006 ;;;_ > allout-back-to-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3007 (defalias 'allout-back-to-heading 'allout-back-to-current-heading) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3008 ;;;_ > allout-pre-next-prefix () |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3009 (defun allout-pre-next-prefix () |
3430 | 3010 "Skip forward to just before the next heading line. |
3011 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3012 Returns that character position." |
3430 | 3013 |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3014 (if (allout-next-heading) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3015 (goto-char (1- allout-recent-prefix-beginning)))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3016 ;;;_ > allout-end-of-subtree (&optional current include-trailing-blank) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3017 (defun allout-end-of-subtree (&optional current include-trailing-blank) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3018 "Put point at the end of the last leaf in the containing topic. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3019 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3020 Optional CURRENT means put point at the end of the containing |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3021 visible topic. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3022 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3023 Optional INCLUDE-TRAILING-BLANK means include a trailing blank line, if |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3024 any, as part of the subtree. Otherwise, that trailing blank will be |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3025 excluded as delimiting whitespace between topics. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3026 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3027 Returns the value of point." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3028 (interactive "P") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3029 (if current |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3030 (allout-back-to-current-heading) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3031 (allout-goto-prefix-doublechecked)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3032 (let ((level allout-recent-depth)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3033 (allout-next-heading) |
3430 | 3034 (while (and (not (eobp)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3035 (> allout-recent-depth level)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3036 (allout-next-heading)) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3037 (if (eobp) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3038 (allout-end-of-entry) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3039 (forward-char -1)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3040 (if (and (not include-trailing-blank) (= ?\n (preceding-char))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3041 (forward-char -1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3042 (setq allout-recent-end-of-subtree (point)))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3043 ;;;_ > allout-end-of-current-subtree (&optional include-trailing-blank) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3044 (defun allout-end-of-current-subtree (&optional include-trailing-blank) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3045 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3046 "Put point at end of last leaf in currently visible containing topic. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3047 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3048 Optional INCLUDE-TRAILING-BLANK means include a trailing blank line, if |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3049 any, as part of the subtree. Otherwise, that trailing blank will be |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3050 excluded as delimiting whitespace between topics. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3051 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3052 Returns the value of point." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3053 (interactive) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3054 (allout-end-of-subtree t include-trailing-blank)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3055 ;;;_ > allout-beginning-of-current-entry (&optional interactive) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3056 (defun allout-beginning-of-current-entry (&optional interactive) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3057 "When not already there, position point at beginning of current topic header. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3058 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3059 If already there, move cursor to bullet for hot-spot operation. |
69250
85c3b33d6427
Restablished intermediate missing comment header to preserve outline structure.
Eli Zaretskii <eliz@gnu.org>
parents:
69124
diff
changeset
|
3060 \(See `allout-mode' doc string for details of hot-spot operation.)" |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3061 (interactive "p") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3062 (let ((start-point (point))) |
69250
85c3b33d6427
Restablished intermediate missing comment header to preserve outline structure.
Eli Zaretskii <eliz@gnu.org>
parents:
69124
diff
changeset
|
3063 (move-beginning-of-line 1) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3064 (if (< 0 (allout-current-depth)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3065 (goto-char allout-recent-prefix-end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3066 (goto-char (point-min))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3067 (allout-end-of-prefix) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3068 (if (and interactive |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3069 (= (point) start-point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3070 (goto-char (allout-current-bullet-pos))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3071 ;;;_ > allout-end-of-entry (&optional inclusive) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3072 (defun allout-end-of-entry (&optional inclusive) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3073 "Position the point at the end of the current topics' entry. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3074 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3075 Optional INCLUSIVE means also include trailing empty line, if any. When |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3076 unset, whitespace between items separates them even when the items are |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3077 collapsed." |
3430 | 3078 (interactive) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3079 (allout-pre-next-prefix) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3080 (if (and (not inclusive) (not (bobp)) (= ?\n (preceding-char))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3081 (forward-char -1)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3082 (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3083 ;;;_ > allout-end-of-current-heading () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3084 (defun allout-end-of-current-heading () |
29490 | 3085 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3086 (allout-beginning-of-current-entry) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3087 (search-forward "\n" nil t) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3088 (forward-char -1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3089 (defalias 'allout-end-of-heading 'allout-end-of-current-heading) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3090 ;;;_ > allout-get-body-text () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3091 (defun allout-get-body-text () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3092 "Return the unmangled body text of the topic immediately containing point." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3093 (save-excursion |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3094 (allout-end-of-prefix) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3095 (if (not (search-forward "\n" nil t)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3096 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3097 (backward-char 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3098 (let ((pre-body (point))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3099 (if (not pre-body) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3100 nil |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3101 (allout-end-of-entry t) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3102 (if (not (= pre-body (point))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3103 (buffer-substring-no-properties (1+ pre-body) (point)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3104 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3105 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3106 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3107 ) |
3430 | 3108 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3109 ;;;_ - Depth-wise |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3110 ;;;_ > allout-ascend-to-depth (depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3111 (defun allout-ascend-to-depth (depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3112 "Ascend to depth DEPTH, returning depth if successful, nil if not." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3113 (if (and (> depth 0)(<= depth (allout-depth))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3114 (let (last-ascended) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3115 (while (and (< depth allout-recent-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3116 (setq last-ascended (allout-ascend)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3117 (goto-char allout-recent-prefix-beginning) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3118 (if (allout-called-interactively-p) (allout-end-of-prefix)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3119 (and last-ascended allout-recent-depth)))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3120 ;;;_ > allout-ascend (&optional dont-move-if-unsuccessful) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3121 (defun allout-ascend (&optional dont-move-if-unsuccessful) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3122 "Ascend one level, returning resulting depth if successful, nil if not. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3123 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3124 Point is left at the beginning of the level whether or not |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3125 successful, unless optional DONT-MOVE-IF-UNSUCCESSFUL is set, in |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3126 which case point is returned to its original starting location." |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3127 (if dont-move-if-unsuccessful |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3128 (setq dont-move-if-unsuccessful (point))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3129 (prog1 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3130 (if (allout-beginning-of-level) |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
3131 (let ((bolevel (point)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
3132 (bolevel-depth allout-recent-depth)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
3133 (allout-previous-heading) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3134 (cond ((< allout-recent-depth bolevel-depth) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3135 allout-recent-depth) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3136 ((= allout-recent-depth bolevel-depth) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3137 (if dont-move-if-unsuccessful |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3138 (goto-char dont-move-if-unsuccessful)) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3139 (allout-depth) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3140 nil) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3141 (t |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3142 ;; some topic after very first is lower depth than first: |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3143 (goto-char bolevel) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3144 (allout-depth) |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3145 nil)))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3146 (if (allout-called-interactively-p) (allout-end-of-prefix)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3147 ;;;_ > allout-descend-to-depth (depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3148 (defun allout-descend-to-depth (depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3149 "Descend to depth DEPTH within current topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3150 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3151 Returning depth if successful, nil if not." |
3430 | 3152 (let ((start-point (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3153 (start-depth (allout-depth))) |
3430 | 3154 (while |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3155 (and (> (allout-depth) 0) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3156 (not (= depth allout-recent-depth)) ; ... not there yet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3157 (allout-next-heading) ; ... go further |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3158 (< start-depth allout-recent-depth))) ; ... still in topic |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3159 (if (and (> (allout-depth) 0) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3160 (= allout-recent-depth depth)) |
3430 | 3161 depth |
3162 (goto-char start-point) | |
3163 nil)) | |
3164 ) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3165 ;;;_ > allout-up-current-level (arg) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3166 (defun allout-up-current-level (arg) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3167 "Move out ARG levels from current visible topic." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3168 (interactive "p") |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3169 (let ((start-point (point))) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3170 (allout-back-to-current-heading) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3171 (if (not (allout-ascend)) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3172 (progn (goto-char start-point) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3173 (error "Can't ascend past outermost level")) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3174 (if (allout-called-interactively-p) (allout-end-of-prefix)) |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
3175 allout-recent-prefix-beginning))) |
3430 | 3176 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3177 ;;;_ - Linear |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3178 ;;;_ > allout-next-sibling (&optional depth backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3179 (defun allout-next-sibling (&optional depth backward) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3180 "Like `allout-forward-current-level', but respects invisible topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3181 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3182 Traverse at optional DEPTH, or current depth if none specified. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3183 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3184 Go backward if optional arg BACKWARD is non-nil. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3185 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3186 Return the start point of the new topic if successful, nil otherwise." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3187 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3188 (if (if backward (bobp) (eobp)) |
3430 | 3189 nil |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3190 (let ((target-depth (or depth (allout-depth))) |
3430 | 3191 (start-point (point)) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3192 (start-prefix-beginning allout-recent-prefix-beginning) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3193 (count 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3194 leaping |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3195 last-depth) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3196 (while (and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3197 ;; done too few single steps to resort to the leap routine: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3198 (not leaping) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3199 ;; not at limit: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3200 (not (if backward (bobp) (eobp))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3201 ;; still traversable: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3202 (if backward (allout-previous-heading) (allout-next-heading)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3203 ;; we're below the target depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3204 (> (setq last-depth allout-recent-depth) target-depth)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3205 (setq count (1+ count)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3206 (if (> count 7) ; lists are commonly 7 +- 2, right?-) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3207 (setq leaping t))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3208 (cond (leaping |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3209 (or (allout-next-sibling-leap target-depth backward) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3210 (progn |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3211 (goto-char start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3212 (if depth (allout-depth) target-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3213 nil))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3214 ((and (not (eobp)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3215 (and (> (or last-depth (allout-depth)) 0) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3216 (= allout-recent-depth target-depth)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3217 (not (= start-prefix-beginning |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
3218 allout-recent-prefix-beginning))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3219 allout-recent-prefix-beginning) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3220 (t |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3221 (goto-char start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3222 (if depth (allout-depth) target-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3223 nil))))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3224 ;;;_ > allout-next-sibling-leap (&optional depth backward) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3225 (defun allout-next-sibling-leap (&optional depth backward) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3226 "Like `allout-next-sibling', but by direct search for topic at depth. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3227 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3228 Traverse at optional DEPTH, or current depth if none specified. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3229 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3230 Go backward if optional arg BACKWARD is non-nil. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3231 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3232 Return the start point of the new topic if successful, nil otherwise. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3233 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3234 Costs more than regular `allout-next-sibling' for short traversals: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3235 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3236 - we have to check the prior (next, if travelling backwards) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3237 item to confirm connectivity with the prior topic, and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3238 - if confirmed, we have to reestablish the allout-recent-* settings with |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3239 some extra navigation |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3240 - if confirmation fails, we have to do more work to recover |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3241 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3242 It is an increasingly big win when there are many intervening |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3243 offspring before the next sibling, however, so |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3244 `allout-next-sibling' resorts to this if it finds itself in that |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3245 situation." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3246 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3247 (if (if backward (bobp) (eobp)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3248 nil |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3249 (let* ((start-point (point)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3250 (target-depth (or depth (allout-depth))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3251 (search-whitespace-regexp nil) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3252 (depth-biased (- target-depth 2)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3253 (expression (if (<= target-depth 1) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3254 allout-depth-one-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3255 (format allout-depth-specific-regexp |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3256 depth-biased depth-biased))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3257 found |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3258 done) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3259 (while (not done) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3260 (setq found (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3261 (if backward |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3262 (re-search-backward expression nil 'to-limit) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3263 (forward-char 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3264 (re-search-forward expression nil 'to-limit)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3265 (if (and found (allout-aberrant-container-p)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3266 (setq found nil)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3267 (setq done (or found (if backward (bobp) (eobp))))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3268 (if (not found) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3269 (progn (goto-char start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3270 nil) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3271 ;; rationale: if any intervening items were at a lower depth, we |
79939 | 3272 ;; would now be on the first offspring at the target depth -- ie, |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3273 ;; the preceeding item (per the search direction) must be at a |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3274 ;; lesser depth. that's all we need to check. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3275 (if backward (allout-next-heading) (allout-previous-heading)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3276 (if (< allout-recent-depth target-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3277 ;; return to start and reestablish allout-recent-*: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3278 (progn |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3279 (goto-char start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3280 (allout-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3281 nil) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3282 (goto-char found) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3283 ;; locate cursor and set allout-recent-*: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3284 (allout-goto-prefix)))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3285 ;;;_ > allout-previous-sibling (&optional depth backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3286 (defun allout-previous-sibling (&optional depth backward) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3287 "Like `allout-forward-current-level' backwards, respecting invisible topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3288 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3289 Optional DEPTH specifies depth to traverse, default current depth. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3290 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3291 Optional BACKWARD reverses direction. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3292 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3293 Return depth if successful, nil otherwise." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3294 (allout-next-sibling depth (not backward)) |
3430 | 3295 ) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3296 ;;;_ > allout-snug-back () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3297 (defun allout-snug-back () |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
3298 "Position cursor at end of previous topic. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3299 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3300 Presumes point is at the start of a topic prefix." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3301 (if (or (bobp) (eobp)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3302 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3303 (forward-char -1)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3304 (if (or (bobp) (not (= ?\n (preceding-char)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3305 nil |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3306 (forward-char -1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3307 (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3308 ;;;_ > allout-beginning-of-level () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3309 (defun allout-beginning-of-level () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3310 "Go back to the first sibling at this level, visible or not." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3311 (allout-end-of-level 'backward)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3312 ;;;_ > allout-end-of-level (&optional backward) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3313 (defun allout-end-of-level (&optional backward) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3314 "Go to the last sibling at this level, visible or not." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3315 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3316 (let ((depth (allout-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3317 (while (allout-previous-sibling depth nil)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3318 (prog1 allout-recent-depth |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3319 (if (allout-called-interactively-p) (allout-end-of-prefix))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3320 ;;;_ > allout-next-visible-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3321 (defun allout-next-visible-heading (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3322 "Move to the next ARG'th visible heading line, backward if arg is negative. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3323 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3324 Move to buffer limit in indicated direction if headings are exhausted." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3325 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3326 (interactive "p") |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
3327 (let* ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
3328 (backward (if (< arg 0) (setq arg (* -1 arg)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3329 (step (if backward -1 1)) |
112119
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3330 (progress (allout-current-bullet-pos)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3331 prev got) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3332 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3333 (while (> arg 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3334 (while (and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3335 ;; Boundary condition: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3336 (not (if backward (bobp)(eobp))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3337 ;; Move, skipping over all concealed lines in one fell swoop: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3338 (prog1 (condition-case nil (or (line-move step) t) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3339 (error nil)) |
112119
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3340 (allout-beginning-of-current-line) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3341 ;; line-move can wind up on the same line if long. |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3342 ;; when moving forward, that would yield no-progress |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3343 (when (and (not backward) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3344 (<= (point) progress)) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3345 ;; ensure progress by doing line-move from end-of-line: |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3346 (end-of-line) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3347 (condition-case nil (or (line-move step) t) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3348 (error nil)) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3349 (allout-beginning-of-current-line) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
3350 (setq progress (point)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3351 ;; Deal with apparent header line: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3352 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3353 (if (not (looking-at allout-regexp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3354 ;; not a header line, keep looking: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3355 t |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3356 (allout-prefix-data) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3357 (if (and (allout-do-doublecheck) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3358 (allout-aberrant-container-p)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3359 ;; skip this aberrant prospective header line: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3360 t |
88056 | 3361 ;; this prospective headerline qualifies -- register: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3362 (setq got allout-recent-prefix-beginning) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3363 ;; and break the loop: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3364 nil))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3365 ;; Register this got, it may be the last: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3366 (if got (setq prev got)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3367 (setq arg (1- arg))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3368 (cond (got ; Last move was to a prefix: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3369 (allout-end-of-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3370 (prev ; Last move wasn't, but prev was: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3371 (goto-char prev) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3372 (allout-end-of-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3373 ((not backward) (end-of-line) nil)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3374 ;;;_ > allout-previous-visible-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3375 (defun allout-previous-visible-heading (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3376 "Move to the previous heading line. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3377 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3378 With argument, repeats or can move forward if negative. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3379 A heading line is one that starts with a `*' (or that `allout-regexp' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3380 matches)." |
3430 | 3381 (interactive "p") |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3382 (prog1 (allout-next-visible-heading (- arg)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3383 (if (allout-called-interactively-p) (allout-end-of-prefix)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3384 ;;;_ > allout-forward-current-level (arg) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3385 (defun allout-forward-current-level (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3386 "Position point at the next heading of the same level. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3387 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3388 Takes optional repeat-count, goes backward if count is negative. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3389 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3390 Returns resulting position, else nil if none found." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3391 (interactive "p") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3392 (let ((start-depth (allout-current-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3393 (start-arg arg) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3394 (backward (> 0 arg))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3395 (if (= 0 start-depth) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3396 (error "No siblings, not in a topic...")) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3397 (if backward (setq arg (* -1 arg))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3398 (allout-back-to-current-heading) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3399 (while (and (not (zerop arg)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3400 (if backward |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3401 (allout-previous-sibling) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3402 (allout-next-sibling))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3403 (setq arg (1- arg))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3404 (if (not (allout-called-interactively-p)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3405 nil |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3406 (allout-end-of-prefix) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3407 (if (not (zerop arg)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3408 (error "Hit %s level %d topic, traversed %d of %d requested" |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3409 (if backward "first" "last") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3410 allout-recent-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3411 (- (abs start-arg) arg) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3412 (abs start-arg)))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3413 ;;;_ > allout-backward-current-level (arg) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3414 (defun allout-backward-current-level (arg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3415 "Inverse of `allout-forward-current-level'." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3416 (interactive "p") |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3417 (if (allout-called-interactively-p) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3418 (let ((current-prefix-arg (* -1 arg))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3419 (call-interactively 'allout-forward-current-level)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3420 (allout-forward-current-level (* -1 arg)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3421 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3422 ;;;_ #5 Alteration |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3423 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3424 ;;;_ - Fundamental |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3425 ;;;_ = allout-post-goto-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3426 (defvar allout-post-goto-bullet nil |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3427 "Outline internal var, for `allout-pre-command-business' hot-spot operation. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3428 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3429 When set, tells post-processing to reposition on topic bullet, and |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3430 then unset it. Set by `allout-pre-command-business' when implementing |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3431 hot-spot operation, where literal characters typed over a topic bullet |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3432 are mapped to the command of the corresponding control-key on the |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3433 `allout-mode-map'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3434 (make-variable-buffer-local 'allout-post-goto-bullet) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3435 ;;;_ = allout-command-counter |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3436 (defvar allout-command-counter 0 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3437 "Counter that monotonically increases in allout-mode buffers. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3438 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3439 Set by `allout-pre-command-business', to support allout addons in |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3440 coordinating with allout activity.") |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3441 (make-variable-buffer-local 'allout-command-counter) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3442 ;;;_ > allout-post-command-business () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3443 (defun allout-post-command-business () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3444 "Outline `post-command-hook' function. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3445 |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3446 - Implement (and clear) `allout-post-goto-bullet', for hot-spot |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3447 outline commands. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3448 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3449 - Decrypt topic currently being edited if it was encrypted for a save." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3450 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3451 ; Apply any external change func: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3452 (if (not (allout-mode-p)) ; In allout-mode. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3453 nil |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3454 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3455 (if (and (boundp 'allout-after-save-decrypt) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3456 allout-after-save-decrypt) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3457 (allout-after-saves-handler)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3458 |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3459 ;; Implement allout-post-goto-bullet, if set: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3460 (if (and allout-post-goto-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3461 (allout-current-bullet-pos)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3462 (progn (goto-char (allout-current-bullet-pos)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3463 (setq allout-post-goto-bullet nil))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3464 )) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3465 ;;;_ > allout-pre-command-business () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3466 (defun allout-pre-command-business () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3467 "Outline `pre-command-hook' function for outline buffers. |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3468 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3469 Among other things, implements special behavior when the cursor is on the |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3470 topic bullet character. |
49962
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3471 |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3472 When the cursor is on the bullet character, self-insert characters are |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3473 reinterpreted as the corresponding control-character in the |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3474 `allout-mode-map'. The `allout-mode' `post-command-hook' insures that |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3475 the cursor which has moved as a result of such reinterpretation is |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3476 positioned on the bullet character of the destination topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3477 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3478 The upshot is that you can get easy, single (ie, unmodified) key |
29490 | 3479 outline maneuvering operations by positioning the cursor on the bullet |
49962
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3480 char. When in this mode you can use regular cursor-positioning |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3481 command/keystrokes to relocate the cursor off of a bullet character to |
13d146080936
(allout-pre-command-business): Fix docstring.
Juanma Barranquero <lekktu@gmail.com>
parents:
49588
diff
changeset
|
3482 return to regular interpretation of self-insert characters." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3483 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3484 (if (not (allout-mode-p)) |
29490 | 3485 nil |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3486 ;; Increment allout-command-counter |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3487 (setq allout-command-counter (1+ allout-command-counter)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
3488 ;; Do hot-spot navigation. |
29490 | 3489 (if (and (eq this-command 'self-insert-command) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3490 (eq (point)(allout-current-bullet-pos))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3491 (allout-hotspot-key-handler)))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3492 ;;;_ > allout-hotspot-key-handler () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3493 (defun allout-hotspot-key-handler () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3494 "Catchall handling of key bindings in hot-spots. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3495 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3496 Translates unmodified keystrokes to corresponding allout commands, when |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3497 they would qualify if prefixed with the allout-command-prefix, and sets |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3498 this-command accordingly. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3499 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3500 Returns the qualifying command, if any, else nil." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3501 (interactive) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3502 (let* ((modified (event-modifiers last-command-event)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3503 (key-string (if (numberp last-command-event) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3504 (char-to-string |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3505 (event-basic-type last-command-event)))) |
101010
4efc7ca085ce
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
3506 (key-num (cond ((numberp last-command-event) last-command-event) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3507 ;; for XEmacs character type: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3508 ((and (fboundp 'characterp) |
101010
4efc7ca085ce
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
3509 (apply 'characterp (list last-command-event))) |
4efc7ca085ce
Replace last-command-char with last-command-event.
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
3510 (apply 'char-to-int (list last-command-event))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3511 (t 0))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3512 mapped-binding) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3513 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3514 (if (zerop key-num) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3515 nil |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3516 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3517 (if (and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3518 ;; exclude control chars and escape: |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3519 (not modified) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3520 (<= 33 key-num) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3521 (setq mapped-binding |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3522 (or (and (assoc key-string allout-keybindings-list) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3523 ;; translate literal membership on list: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3524 (cadr (assoc key-string allout-keybindings-list))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3525 ;; translate as a keybinding: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3526 (key-binding (vconcat allout-command-prefix |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3527 (vector |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3528 (if (and (<= 97 key-num) ; "a" |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3529 (>= 122 key-num)) ; "z" |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3530 (- key-num 96) key-num))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3531 t)))) |
79939 | 3532 ;; Qualified as an allout command -- do hot-spot operation. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3533 (setq allout-post-goto-bullet t) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3534 ;; accept-defaults nil, or else we get allout-item-icon-key-handler. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3535 (setq mapped-binding (key-binding (vector key-num)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3536 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3537 (while (keymapp mapped-binding) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3538 (setq mapped-binding |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
3539 (lookup-key mapped-binding (vector (read-char))))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3540 |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3541 (when mapped-binding |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3542 (setq this-command mapped-binding))))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3543 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3544 ;;;_ > allout-find-file-hook () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3545 (defun allout-find-file-hook () |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
3546 "Activate `allout-mode' on non-nil `allout-auto-activation', `allout-layout'. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3547 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3548 See `allout-init' for setup instructions." |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3549 (if (and allout-auto-activation |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3550 (not (allout-mode-p)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3551 allout-layout) |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
3552 (allout-mode))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3553 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3554 ;;;_ - Topic Format Assessment |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3555 ;;;_ > allout-solicit-alternate-bullet (depth &optional current-bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3556 (defun allout-solicit-alternate-bullet (depth &optional current-bullet) |
3430 | 3557 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3558 "Prompt for and return a bullet char as an alternative to the current one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3559 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3560 Offer one suitable for current depth DEPTH as default." |
3430 | 3561 |
29490 | 3562 (let* ((default-bullet (or (and (stringp current-bullet) current-bullet) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3563 (allout-bullet-for-depth depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3564 (sans-escapes (regexp-sans-escapes allout-bullets-string)) |
29490 | 3565 choice) |
3566 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3567 (goto-char (allout-current-bullet-pos)) |
29490 | 3568 (setq choice (solicit-char-in-string |
3569 (format "Select bullet: %s ('%s' default): " | |
3570 sans-escapes | |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
3571 (allout-substring-no-properties default-bullet)) |
29490 | 3572 sans-escapes |
3573 t))) | |
3574 (message "") | |
3430 | 3575 (if (string= choice "") default-bullet choice)) |
3576 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3577 ;;;_ > allout-distinctive-bullet (bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3578 (defun allout-distinctive-bullet (bullet) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
3579 "True if BULLET is one of those on `allout-distinctive-bullets-string'." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3580 (string-match (regexp-quote bullet) allout-distinctive-bullets-string)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3581 ;;;_ > allout-numbered-type-prefix (&optional prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3582 (defun allout-numbered-type-prefix (&optional prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3583 "True if current header prefix bullet is numbered bullet." |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3584 (and allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3585 (string= allout-numbered-bullet |
3430 | 3586 (if prefix |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3587 (allout-get-prefix-bullet prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3588 (allout-get-bullet))))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3589 ;;;_ > allout-encrypted-type-prefix (&optional prefix) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3590 (defun allout-encrypted-type-prefix (&optional prefix) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3591 "True if current header prefix bullet is for an encrypted entry (body)." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3592 (and allout-topic-encryption-bullet |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3593 (string= allout-topic-encryption-bullet |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3594 (if prefix |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3595 (allout-get-prefix-bullet prefix) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3596 (allout-get-bullet))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3597 ;;;_ > allout-bullet-for-depth (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3598 (defun allout-bullet-for-depth (&optional depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3599 "Return outline topic bullet suited to optional DEPTH, or current depth." |
3430 | 3600 ;; Find bullet in plain-bullets-string modulo DEPTH. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3601 (if allout-stylish-prefixes |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3602 (char-to-string (aref allout-plain-bullets-string |
3430 | 3603 (% (max 0 (- depth 2)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3604 allout-plain-bullets-string-len))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3605 allout-primary-bullet) |
3430 | 3606 ) |
3607 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3608 ;;;_ - Topic Production |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3609 ;;;_ > allout-make-topic-prefix (&optional prior-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3610 (defun allout-make-topic-prefix (&optional prior-bullet |
3430 | 3611 new |
3612 depth | |
3613 solicit | |
3614 number-control | |
3615 index) | |
3616 ;; Depth null means use current depth, non-null means we're either | |
3617 ;; opening a new topic after current topic, lower or higher, or we're | |
3618 ;; changing level of current topic. | |
3619 ;; Solicit dominates specified bullet-char. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3620 ;;;_ . Doc string: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3621 "Generate a topic prefix suitable for optional arg DEPTH, or current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3622 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3623 All the arguments are optional. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3624 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3625 PRIOR-BULLET indicates the bullet of the prefix being changed, or |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3626 nil if none. This bullet may be preserved (other options |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3627 notwithstanding) if it is on the `allout-distinctive-bullets-string', |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3628 for instance. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3629 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3630 Second arg NEW indicates that a new topic is being opened after the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3631 topic at point, if non-nil. Default bullet for new topics, eg, may |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3632 be set (contingent to other args) to numbered bullets if previous |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3633 sibling is one. The implication otherwise is that the current topic |
79939 | 3634 is being adjusted -- shifted or rebulleted -- and we don't consider |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3635 bullet or previous sibling. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3636 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3637 Third arg DEPTH forces the topic prefix to that depth, regardless of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3638 the current topics' depth. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3639 |
29490 | 3640 If SOLICIT is non-nil, then the choice of bullet is solicited from |
3641 user. If it's a character, then that character is offered as the | |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3642 default, otherwise the one suited to the context (according to |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3643 distinction or depth) is offered. (This overrides other options, |
29490 | 3644 including, eg, a distinctive PRIOR-BULLET.) If non-nil, then the |
3645 context-specific bullet is used. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3646 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3647 Fifth arg, NUMBER-CONTROL, matters only if `allout-numbered-bullet' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3648 is non-nil *and* soliciting was not explicitly invoked. Then |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3649 NUMBER-CONTROL non-nil forces prefix to either numbered or |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3650 denumbered format, depending on the value of the sixth arg, INDEX. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3651 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3652 \(Note that NUMBER-CONTROL does *not* apply to level 1 topics. Sorry...) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3653 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3654 If NUMBER-CONTROL is non-nil and sixth arg INDEX is non-nil then |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3655 the prefix of the topic is forced to be numbered. Non-nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3656 NUMBER-CONTROL and nil INDEX forces non-numbered format on the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3657 bullet. Non-nil NUMBER-CONTROL and non-nil, non-number INDEX means |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3658 that the index for the numbered prefix will be derived, by counting |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3659 siblings back to start of level. If INDEX is a number, then that |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3660 number is used as the index for the numbered prefix (allowing, eg, |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
3661 sequential renumbering to not require this function counting back the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3662 index for each successive sibling)." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3663 ;;;_ . Code: |
3430 | 3664 ;; The options are ordered in likely frequence of use, most common |
3665 ;; highest, least lowest. Ie, more likely to be doing prefix | |
3666 ;; adjustments than soliciting, and yet more than numbering. | |
3667 ;; Current prefix is least dominant, but most likely to be commonly | |
3668 ;; specified... | |
3669 | |
3670 (let* (body | |
3671 numbering | |
3672 denumbering | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3673 (depth (or depth (allout-depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3674 (header-lead allout-header-prefix) |
3430 | 3675 (bullet-char |
3676 | |
3677 ;; Getting value for bullet char is practically the whole job: | |
3678 | |
3679 (cond | |
79939 | 3680 ; Simplest situation -- level 1: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3681 ((<= depth 1) (setq header-lead "") allout-primary-bullet) |
3430 | 3682 ; Simple, too: all asterisks: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3683 (allout-old-style-prefixes |
79939 | 3684 ;; Cheat -- make body the whole thing, null out header-lead and |
3430 | 3685 ;; bullet-char: |
3686 (setq body (make-string depth | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3687 (string-to-char allout-primary-bullet))) |
3430 | 3688 (setq header-lead "") |
3689 "") | |
3690 | |
3691 ;; (Neither level 1 nor old-style, so we're space padding. | |
3692 ;; Sneak it in the condition of the next case, whatever it is.) | |
3693 | |
3694 ;; Solicitation overrides numbering and other cases: | |
3695 ((progn (setq body (make-string (- depth 2) ?\ )) | |
3696 ;; The actual condition: | |
3697 solicit) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3698 (let* ((got (allout-solicit-alternate-bullet depth solicit))) |
3430 | 3699 ;; Gotta check whether we're numbering and got a numbered bullet: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3700 (setq numbering (and allout-numbered-bullet |
3430 | 3701 (not (and number-control (not index))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3702 (string= got allout-numbered-bullet))) |
3430 | 3703 ;; Now return what we got, regardless: |
3704 got)) | |
3705 | |
3706 ;; Numbering invoked through args: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3707 ((and allout-numbered-bullet number-control) |
3430 | 3708 (if (setq numbering (not (setq denumbering (not index)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3709 allout-numbered-bullet |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3710 (if (and prior-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3711 (not (string= allout-numbered-bullet |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3712 prior-bullet))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3713 prior-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3714 (allout-bullet-for-depth depth)))) |
3430 | 3715 |
3716 ;;; Neither soliciting nor controlled numbering ;;; | |
3717 ;;; (may be controlled denumbering, tho) ;;; | |
3718 | |
3719 ;; Check wrt previous sibling: | |
3720 ((and new ; only check for new prefixes | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3721 (<= depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3722 allout-numbered-bullet ; ... & numbering enabled |
3430 | 3723 (not denumbering) |
3724 (let ((sibling-bullet | |
3725 (save-excursion | |
3726 ;; Locate correct sibling: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3727 (or (>= depth (allout-depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3728 (allout-ascend-to-depth depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3729 (allout-get-bullet)))) |
3430 | 3730 (if (and sibling-bullet |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3731 (string= allout-numbered-bullet sibling-bullet)) |
3430 | 3732 (setq numbering sibling-bullet))))) |
3733 | |
3734 ;; Distinctive prior bullet? | |
3735 ((and prior-bullet | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3736 (allout-distinctive-bullet prior-bullet) |
3430 | 3737 ;; Either non-numbered: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3738 (or (not (and allout-numbered-bullet |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3739 (string= prior-bullet allout-numbered-bullet))) |
3430 | 3740 ;; or numbered, and not denumbering: |
3741 (setq numbering (not denumbering))) | |
3742 ;; Here 'tis: | |
3743 prior-bullet)) | |
3744 | |
3745 ;; Else, standard bullet per depth: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3746 ((allout-bullet-for-depth depth))))) |
3430 | 3747 |
3748 (concat header-lead | |
3749 body | |
3750 bullet-char | |
3751 (if numbering | |
3752 (format "%d" (cond ((and index (numberp index)) index) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3753 (new (1+ (allout-sibling-index depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3754 ((allout-sibling-index)))))) |
3430 | 3755 ) |
3756 ) | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3757 ;;;_ > allout-open-topic (relative-depth &optional before offer-recent-bullet) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3758 (defun allout-open-topic (relative-depth &optional before offer-recent-bullet) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3759 "Open a new topic at depth DEPTH. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3760 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3761 New topic is situated after current one, unless optional flag BEFORE |
79939 | 3762 is non-nil, or unless current line is completely empty -- lacking even |
3763 whitespace -- in which case open is done on the current line. | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3764 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3765 When adding an offspring, it will be added immediately after the parent if |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3766 the other offspring are exposed, or after the last child if the offspring |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
3767 are hidden. (The intervening offspring will be exposed in the latter |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3768 case.) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3769 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3770 If OFFER-RECENT-BULLET is true, offer to use the bullet of the prior sibling. |
29490 | 3771 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3772 Nuances: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3773 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3774 - Creation of new topics is with respect to the visible topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3775 containing the cursor, regardless of intervening concealed ones. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3776 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3777 - New headers are generally created after/before the body of a |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3778 topic. However, they are created right at cursor location if the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3779 cursor is on a blank line, even if that breaks the current topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3780 body. This is intentional, to provide a simple means for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3781 deliberately dividing topic bodies. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3782 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3783 - Double spacing of topic lists is preserved. Also, the first |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3784 level two topic is created double-spaced (and so would be |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3785 subsequent siblings, if that's left intact). Otherwise, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3786 single-spacing is used. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3787 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3788 - Creation of sibling or nested topics is with respect to the topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3789 you're starting from, even when creating backwards. This way you |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3790 can easily create a sibling in front of the current topic without |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
3791 having to go to its preceding sibling, and then open forward |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3792 from there." |
3430 | 3793 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3794 (allout-beginning-of-current-line) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3795 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3796 (let* ((inhibit-field-text-motion t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3797 (depth (+ (allout-current-depth) relative-depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3798 (opening-on-blank (if (looking-at "^\$") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3799 (not (setq before nil)))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3800 ;; bunch o vars set while computing ref-topic |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3801 opening-numbered |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3802 ref-depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3803 ref-bullet |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3804 (ref-topic (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3805 (cond ((< relative-depth 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3806 (allout-ascend-to-depth depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3807 ((>= relative-depth 1) nil) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3808 (t (allout-back-to-current-heading))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3809 (setq ref-depth allout-recent-depth) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3810 (setq ref-bullet |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3811 (if (> allout-recent-prefix-end 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3812 (allout-recent-bullet) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3813 "")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3814 (setq opening-numbered |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3815 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3816 (and allout-numbered-bullet |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3817 (or (<= relative-depth 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3818 (allout-descend-to-depth depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3819 (if (allout-numbered-type-prefix) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3820 allout-numbered-bullet)))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3821 (point))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3822 dbl-space |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3823 doing-beginning |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3824 start end) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3825 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3826 (if (not opening-on-blank) |
3430 | 3827 ; Positioning and vertical |
79939 | 3828 ; padding -- only if not |
3430 | 3829 ; opening-on-blank: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3830 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3831 (goto-char ref-topic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3832 (setq dbl-space ; Determine double space action: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3833 (or (and (<= relative-depth 0) ; not descending; |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3834 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3835 ;; at b-o-b or preceded by a blank line? |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3836 (or (> 0 (forward-line -1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3837 (looking-at "^\\s-*$") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3838 (bobp))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3839 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3840 ;; succeeded by a blank line? |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3841 (allout-end-of-current-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3842 (looking-at "\n\n"))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3843 (and (= ref-depth 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3844 (or before |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3845 (= depth 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3846 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3847 ;; Don't already have following |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3848 ;; vertical padding: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3849 (not (allout-pre-next-prefix))))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3850 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3851 ;; Position to prior heading, if inserting backwards, and not |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3852 ;; going outwards: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3853 (if (and before (>= relative-depth 0)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3854 (progn (allout-back-to-current-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3855 (setq doing-beginning (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3856 (if (not (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3857 (allout-previous-heading))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3858 (if (and before (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3859 (open-line 1))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3860 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3861 (if (<= relative-depth 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3862 ;; Not going inwards, don't snug up: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3863 (if doing-beginning |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3864 (if (not dbl-space) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3865 (open-line 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3866 (open-line 2)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3867 (if before |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3868 (progn (end-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3869 (allout-pre-next-prefix) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3870 (while (and (= ?\n (following-char)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3871 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3872 (forward-char 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3873 (allout-hidden-p))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3874 (forward-char 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3875 (if (not (looking-at "^$")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3876 (open-line 1))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3877 (allout-end-of-current-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3878 (if (looking-at "\n\n") (forward-char 1)))) |
88056 | 3879 ;; Going inwards -- double-space if first offspring is |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3880 ;; double-spaced, otherwise snug up. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3881 (allout-end-of-entry) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3882 (if (eobp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3883 (newline 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3884 (line-move 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3885 (allout-beginning-of-current-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3886 (backward-char 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3887 (if (bolp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3888 ;; Blank lines between current header body and next |
88056 | 3889 ;; header -- get to last substantive (non-white-space) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3890 ;; line in body: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3891 (progn (setq dbl-space t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3892 (re-search-backward "[^ \t\n]" nil t))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3893 (if (looking-at "\n\n") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3894 (setq dbl-space t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3895 (if (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3896 (allout-next-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3897 (when (> allout-recent-depth ref-depth) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3898 ;; This is an offspring. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3899 (forward-line -1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3900 (looking-at "^\\s-*$"))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3901 (progn (forward-line 1) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
3902 (open-line 1) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3903 (forward-line 1))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3904 (allout-end-of-current-line)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3905 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3906 ;;(if doing-beginning (goto-char doing-beginning)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3907 (if (not (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3908 ;; We insert a newline char rather than using open-line to |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3909 ;; avoid rear-stickiness inheritence of read-only property. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3910 (progn (if (and (not (> depth ref-depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3911 (not before)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3912 (open-line 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3913 (if (and (not dbl-space) (> depth ref-depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3914 (newline 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3915 (if dbl-space |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3916 (open-line 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3917 (if (not before) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3918 (newline 1))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3919 (if (and dbl-space (not (> relative-depth 0))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3920 (newline 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3921 (if (and (not (eobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3922 (or (not (bolp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3923 (and (not (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3924 ;; bolp doesnt detect concealed |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3925 ;; trailing newlines, compensate: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3926 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3927 (forward-char -1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3928 (allout-hidden-p))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3929 (forward-char 1)))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3930 )) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3931 (setq start (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3932 (insert (concat (allout-make-topic-prefix opening-numbered t depth) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3933 " ")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3934 (setq end (1+ (point))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3935 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3936 (allout-rebullet-heading (and offer-recent-bullet ref-bullet) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3937 depth nil nil t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3938 (if (> relative-depth 0) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3939 (save-excursion (goto-char ref-topic) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3940 (allout-show-children))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3941 (end-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3942 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3943 (run-hook-with-args 'allout-structure-added-hook start end) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3944 ) |
3430 | 3945 ) |
3946 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3947 ;;;_ > allout-open-subtopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3948 (defun allout-open-subtopic (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3949 "Open new topic header at deeper level than the current one. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3950 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3951 Negative universal arg means to open deeper, but place the new topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3952 prior to the current one." |
3430 | 3953 (interactive "p") |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3954 (allout-open-topic 1 (> 0 arg) (< 1 arg))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3955 ;;;_ > allout-open-sibtopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3956 (defun allout-open-sibtopic (arg) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3957 "Open new topic header at same level as the current one. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3958 |
29490 | 3959 Positive universal arg means to use the bullet of the prior sibling. |
3960 | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3961 Negative universal arg means to place the new topic prior to the current |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3962 one." |
3430 | 3963 (interactive "p") |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3964 (allout-open-topic 0 (> 0 arg) (not (= 1 arg)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3965 ;;;_ > allout-open-supertopic (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3966 (defun allout-open-supertopic (arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3967 "Open new topic header at shallower level than the current one. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3968 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3969 Negative universal arg means to open shallower, but place the new |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3970 topic prior to the current one." |
3430 | 3971 |
3972 (interactive "p") | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
3973 (allout-open-topic -1 (> 0 arg) (< 1 arg))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3974 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3975 ;;;_ - Outline Alteration |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
3976 ;;;_ : Topic Modification |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3977 ;;;_ = allout-former-auto-filler |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3978 (defvar allout-former-auto-filler nil |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
3979 "Name of modal fill function being wrapped by `allout-auto-fill'.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3980 ;;;_ > allout-auto-fill () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3981 (defun allout-auto-fill () |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
3982 "`allout-mode' autofill function. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3983 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
3984 Maintains outline hanging topic indentation if |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
3985 `allout-use-hanging-indents' is set." |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3986 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3987 (when (not allout-inhibit-auto-fill) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3988 (let ((fill-prefix (if allout-use-hanging-indents |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
3989 ;; Check for topic header indentation: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3990 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3991 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3992 (beginning-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3993 (if (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3994 ;; ... construct indentation to account for |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3995 ;; length of topic prefix: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3996 (make-string (progn (allout-end-of-prefix) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3997 (current-column)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
3998 ?\ )))))) |
112044
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
3999 (use-auto-fill-function |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4000 (if (and (eq allout-outside-normal-auto-fill-function |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4001 'allout-auto-fill) |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4002 (eq auto-fill-function 'allout-auto-fill)) |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4003 'do-auto-fill |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4004 (or allout-outside-normal-auto-fill-function |
38481fb0a538
(allout-auto-fill): Do not infinitely recurse - use do-auto-fill if
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112027
diff
changeset
|
4005 auto-fill-function)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4006 (if (or allout-former-auto-filler allout-use-hanging-indents) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4007 (funcall use-auto-fill-function))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4008 ;;;_ > allout-reindent-body (old-depth new-depth &optional number) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4009 (defun allout-reindent-body (old-depth new-depth &optional number) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
4010 "Reindent body lines which were indented at OLD-DEPTH to NEW-DEPTH. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4011 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4012 Optional arg NUMBER indicates numbering is being added, and it must |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
4013 be accommodated. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4014 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4015 Note that refill of indented paragraphs is not done." |
3430 | 4016 |
4017 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4018 (allout-end-of-prefix) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4019 (let* ((new-margin (current-column)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4020 excess old-indent-begin old-indent-end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4021 ;; We want the column where the header-prefix text started |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4022 ;; *before* the prefix was changed, so we infer it relative |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4023 ;; to the new margin and the shift in depth: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4024 (old-margin (+ old-depth (- new-margin new-depth)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4025 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4026 ;; Process lines up to (but excluding) next topic header: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4027 (allout-unprotected |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4028 (save-match-data |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4029 (while |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4030 (and (re-search-forward "\n\\(\\s-*\\)" |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4031 nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4032 t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4033 ;; Register the indent data, before we reset the |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4034 ;; match data with a subsequent `looking-at': |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4035 (setq old-indent-begin (match-beginning 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4036 old-indent-end (match-end 1)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4037 (not (looking-at allout-regexp))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4038 (if (> 0 (setq excess (- (- old-indent-end old-indent-begin) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4039 old-margin))) |
79939 | 4040 ;; Text starts left of old margin -- don't adjust: |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4041 nil |
79940
b113c474ec50
More trivial doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
79939
diff
changeset
|
4042 ;; Text was hanging at or right of old left margin -- |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4043 ;; reindent it, preserving its existing indentation |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4044 ;; beyond the old margin: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4045 (delete-region old-indent-begin old-indent-end) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4046 (indent-to (+ new-margin excess (current-column)))))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4047 ;;;_ > allout-rebullet-current-heading (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4048 (defun allout-rebullet-current-heading (arg) |
29490 | 4049 "Solicit new bullet for current visible heading." |
4050 (interactive "p") | |
4051 (let ((initial-col (current-column)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4052 (on-bullet (eq (point)(allout-current-bullet-pos))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4053 from to |
29490 | 4054 (backwards (if (< arg 0) |
4055 (setq arg (* arg -1))))) | |
4056 (while (> arg 0) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4057 (save-excursion (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4058 (allout-end-of-prefix) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4059 (setq from allout-recent-prefix-beginning |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4060 to allout-recent-prefix-end) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4061 (allout-rebullet-heading t ;;; solicit |
29490 | 4062 nil ;;; depth |
4063 nil ;;; number-control | |
4064 nil ;;; index | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4065 t) ;;; do-successors |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4066 (run-hook-with-args 'allout-exposure-change-hook |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4067 from to t)) |
29490 | 4068 (setq arg (1- arg)) |
4069 (if (<= arg 0) | |
4070 nil | |
4071 (setq initial-col nil) ; Override positioning back to init col | |
4072 (if (not backwards) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4073 (allout-next-visible-heading 1) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4074 (allout-goto-prefix-doublechecked) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4075 (allout-next-visible-heading -1)))) |
29490 | 4076 (message "Done.") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4077 (cond (on-bullet (goto-char (allout-current-bullet-pos))) |
29490 | 4078 (initial-col (move-to-column initial-col))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4079 ;;;_ > allout-rebullet-heading (&optional solicit ...) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4080 (defun allout-rebullet-heading (&optional solicit |
3430 | 4081 new-depth |
4082 number-control | |
4083 index | |
4084 do-successors) | |
4085 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4086 "Adjust bullet of current topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4087 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4088 All args are optional. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4089 |
29490 | 4090 If SOLICIT is non-nil, then the choice of bullet is solicited from |
4091 user. If it's a character, then that character is offered as the | |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
4092 default, otherwise the one suited to the context (according to |
29490 | 4093 distinction or depth) is offered. If non-nil, then the |
4094 context-specific bullet is just used. | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4095 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4096 Second arg DEPTH forces the topic prefix to that depth, regardless |
29490 | 4097 of the topic's current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4098 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4099 Third arg NUMBER-CONTROL can force the prefix to or away from |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4100 numbered form. It has effect only if `allout-numbered-bullet' is |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4101 non-nil and soliciting was not explicitly invoked (via first arg). |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4102 Its effect, numbering or denumbering, then depends on the setting |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4103 of the fourth arg, INDEX. |
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4104 |
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4105 If NUMBER-CONTROL is non-nil and fourth arg INDEX is nil, then the |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4106 prefix of the topic is forced to be non-numbered. Null index and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4107 non-nil NUMBER-CONTROL forces denumbering. Non-nil INDEX (and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4108 non-nil NUMBER-CONTROL) forces a numbered-prefix form. If non-nil |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4109 INDEX is a number, then that number is used for the numbered |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4110 prefix. Non-nil and non-number means that the index for the |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4111 numbered prefix will be derived by allout-make-topic-prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4112 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4113 Fifth arg DO-SUCCESSORS t means re-resolve count on succeeding |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4114 siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4115 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4116 Cf vars `allout-stylish-prefixes', `allout-old-style-prefixes', |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4117 and `allout-numbered-bullet', which all affect the behavior of |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4118 this function." |
3430 | 4119 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4120 (let* ((current-depth (allout-depth)) |
3430 | 4121 (new-depth (or new-depth current-depth)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4122 (mb allout-recent-prefix-beginning) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4123 (me allout-recent-prefix-end) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4124 (current-bullet (buffer-substring-no-properties (- me 1) me)) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4125 (has-annotation (get-text-property mb 'allout-was-hidden)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4126 (new-prefix (allout-make-topic-prefix current-bullet |
3430 | 4127 nil |
4128 new-depth | |
4129 solicit | |
4130 number-control | |
4131 index))) | |
4132 | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4133 ;; Is new one is identical to old? |
3430 | 4134 (if (and (= current-depth new-depth) |
4135 (string= current-bullet | |
4136 (substring new-prefix (1- (length new-prefix))))) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4137 ;; Nothing to do: |
3430 | 4138 t |
4139 | |
4140 ;; New prefix probably different from old: | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4141 ; get rid of old one: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4142 (allout-unprotected (delete-region mb me)) |
3430 | 4143 (goto-char mb) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4144 ; Dispense with number if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4145 ; numbered-bullet prefix: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4146 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4147 (if (and allout-numbered-bullet |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4148 (string= allout-numbered-bullet current-bullet) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4149 (looking-at "[0-9]+")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4150 (allout-unprotected |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4151 (delete-region (match-beginning 0)(match-end 0))))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4152 |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4153 ;; convey 'allout-was-hidden annotation, if original had it: |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4154 (if has-annotation |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4155 (put-text-property 0 (length new-prefix) 'allout-was-hidden t |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4156 new-prefix)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4157 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4158 ; Put in new prefix: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4159 (allout-unprotected (insert new-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4160 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4161 ;; Reindent the body if elected, margin changed, and not encrypted body: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4162 (if (and allout-reindent-bodies |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4163 (not (= new-depth current-depth)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4164 (not (allout-encrypted-topic-p))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4165 (allout-reindent-body current-depth new-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4166 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4167 ;; Recursively rectify successive siblings of orig topic if |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4168 ;; caller elected for it: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4169 (if do-successors |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4170 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4171 (while (allout-next-sibling new-depth nil) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4172 (setq index |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4173 (cond ((numberp index) (1+ index)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4174 ((not number-control) (allout-sibling-index)))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4175 (if (allout-numbered-type-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4176 (allout-rebullet-heading nil ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4177 new-depth ;;; new-depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4178 number-control;;; number-control |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4179 index ;;; index |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4180 nil))))) ;;;(dont!)do-successors |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4181 ) ; (if (and (= current-depth new-depth)...)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4182 ) ; let* ((current-depth (allout-depth))...) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4183 ) ; defun |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4184 ;;;_ > allout-rebullet-topic (arg) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4185 (defun allout-rebullet-topic (arg &optional sans-offspring) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4186 "Rebullet the visible topic containing point and all contained subtopics. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4187 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4188 Descends into invisible as well as visible topics, however. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4189 |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4190 When optional SANS-OFFSPRING is non-nil, subtopics are not |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
4191 shifted. (Shifting a topic outwards without shifting its |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4192 offspring is disallowed, since this would create a \"containment |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4193 discontinuity\", where the depth difference between a topic and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4194 its immediate offspring is greater than one.) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4195 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4196 With repeat count, shift topic depth by that amount." |
3430 | 4197 (interactive "P") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4198 (let ((start-col (current-column))) |
3430 | 4199 (save-excursion |
4200 ;; Normalize arg: | |
4201 (cond ((null arg) (setq arg 0)) | |
4202 ((listp arg) (setq arg (car arg)))) | |
4203 ;; Fill the user in, in case we're shifting a big topic: | |
4204 (if (not (zerop arg)) (message "Shifting...")) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4205 (allout-back-to-current-heading) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4206 (if (<= (+ allout-recent-depth arg) 0) |
3430 | 4207 (error "Attempt to shift topic below level 1")) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4208 (allout-rebullet-topic-grunt arg nil nil nil nil sans-offspring) |
3430 | 4209 (if (not (zerop arg)) (message "Shifting... done."))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4210 (move-to-column (max 0 (+ start-col arg))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4211 ;;;_ > allout-rebullet-topic-grunt (&optional relative-depth ...) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4212 (defun allout-rebullet-topic-grunt (&optional relative-depth |
3430 | 4213 starting-depth |
4214 starting-point | |
4215 index | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4216 do-successors |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4217 sans-offspring) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4218 "Like `allout-rebullet-topic', but on nearest containing topic |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4219 \(visible or not). |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4220 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4221 See `allout-rebullet-heading' for rebulleting behavior. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4222 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4223 All arguments are optional. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4224 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4225 First arg RELATIVE-DEPTH means to shift the depth of the entire |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4226 topic that amount. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4227 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4228 Several subsequent args are for internal recursive use by the function |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4229 itself: STARTING-DEPTH, STARTING-POINT, and INDEX. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4230 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4231 Finally, if optional SANS-OFFSPRING is non-nil then the offspring |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
4232 are not shifted. (Shifting a topic outwards without shifting |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4233 its offspring is disallowed, since this would create a |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4234 \"containment discontinuity\", where the depth difference between |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4235 a topic and its immediate offspring is greater than one.)" |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4236 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4237 ;; XXX the recursion here is peculiar, and in general the routine may |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4238 ;; need simplification with refactoring. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4239 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4240 (if (and sans-offspring |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4241 relative-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4242 (< relative-depth 0)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4243 (error (concat "Attempt to shift topic outwards without offspring," |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4244 " would cause containment discontinuity."))) |
3430 | 4245 |
4246 (let* ((relative-depth (or relative-depth 0)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4247 (new-depth (allout-depth)) |
3430 | 4248 (starting-depth (or starting-depth new-depth)) |
4249 (on-starting-call (null starting-point)) | |
4250 (index (or index | |
4251 ;; Leave index null on starting call, so rebullet-heading | |
4252 ;; calculates it at what might be new depth: | |
4253 (and (or (zerop relative-depth) | |
4254 (not on-starting-call)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4255 (allout-sibling-index)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4256 (starting-index index) |
3430 | 4257 (moving-outwards (< 0 relative-depth)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4258 (starting-point (or starting-point (point))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4259 (local-point (point))) |
3430 | 4260 |
4261 ;; Sanity check for excessive promotion done only on starting call: | |
4262 (and on-starting-call | |
4263 moving-outwards | |
4264 (> 0 (+ starting-depth relative-depth)) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4265 (error "Attempt to shift topic out beyond level 1")) |
3430 | 4266 |
4267 (cond ((= starting-depth new-depth) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4268 ;; We're at depth to work on this one. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4269 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4270 ;; When shifting out we work on the children before working on |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4271 ;; the parent to avoid interim `allout-aberrant-container-p' |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4272 ;; aberrancy, and vice-versa when shifting in: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4273 (if (>= relative-depth 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4274 (allout-rebullet-heading nil |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4275 (+ starting-depth relative-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4276 nil ;;; number |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4277 index |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4278 nil)) ;;; do-successors |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4279 (when (not sans-offspring) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4280 ;; ... and work on subsequent ones which are at greater depth: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4281 (setq index 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4282 (allout-next-heading) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4283 (while (and (not (eobp)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4284 (< starting-depth (allout-depth))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4285 (setq index (1+ index)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4286 (allout-rebullet-topic-grunt relative-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4287 (1+ starting-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4288 starting-point |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4289 index))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4290 (when (< relative-depth 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4291 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4292 (goto-char local-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4293 (allout-rebullet-heading nil ;;; solicit |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4294 (+ starting-depth relative-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4295 nil ;;; number |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4296 starting-index |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4297 nil)))) ;;; do-successors |
3430 | 4298 |
4299 ((< starting-depth new-depth) | |
79939 | 4300 ;; Rare case -- subtopic more than one level deeper than parent. |
3430 | 4301 ;; Treat this one at an even deeper level: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4302 (allout-rebullet-topic-grunt relative-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4303 new-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4304 starting-point |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4305 index |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4306 sans-offspring))) |
3430 | 4307 |
4308 (if on-starting-call | |
4309 (progn | |
4310 ;; Rectify numbering of former siblings of the adjusted topic, | |
4311 ;; if topic has changed depth | |
4312 (if (or do-successors | |
4313 (and (not (zerop relative-depth)) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4314 (or (= allout-recent-depth starting-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4315 (= allout-recent-depth (+ starting-depth |
3430 | 4316 relative-depth))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4317 (allout-rebullet-heading nil nil nil nil t)) |
3430 | 4318 ;; Now rectify numbering of new siblings of the adjusted topic, |
4319 ;; if depth has been changed: | |
4320 (progn (goto-char starting-point) | |
4321 (if (not (zerop relative-depth)) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4322 (allout-rebullet-heading nil nil nil nil t))))) |
3430 | 4323 ) |
4324 ) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4325 ;;;_ > allout-renumber-to-depth (&optional depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4326 (defun allout-renumber-to-depth (&optional depth) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4327 "Renumber siblings at current depth. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4328 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4329 Affects superior topics if optional arg DEPTH is less than current depth. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4330 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4331 Returns final depth." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4332 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4333 ;; Proceed by level, processing subsequent siblings on each, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4334 ;; ascending until we get shallower than the start depth: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4335 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4336 (let ((ascender (allout-depth)) |
29490 | 4337 was-eobp) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4338 (while (and (not (eobp)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4339 (allout-depth) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4340 (>= allout-recent-depth depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4341 (>= ascender depth)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4342 ; Skip over all topics at |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4343 ; lesser depths, which can not |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4344 ; have been disturbed: |
29490 | 4345 (while (and (not (setq was-eobp (eobp))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4346 (> allout-recent-depth ascender)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4347 (allout-next-heading)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4348 ; Prime ascender for ascension: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4349 (setq ascender (1- allout-recent-depth)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4350 (if (>= allout-recent-depth depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4351 (allout-rebullet-heading nil ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4352 nil ;;; depth |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4353 nil ;;; number-control |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4354 nil ;;; index |
29490 | 4355 t)) ;;; do-successors |
4356 (if was-eobp (goto-char (point-max))))) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4357 allout-recent-depth) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4358 ;;;_ > allout-number-siblings (&optional denumber) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4359 (defun allout-number-siblings (&optional denumber) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4360 "Assign numbered topic prefix to this topic and its siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4361 |
79939 | 4362 With universal argument, denumber -- assign default bullet to this |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4363 topic and its siblings. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4364 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4365 With repeated universal argument (`^U^U'), solicit bullet for each |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4366 rebulleting each topic at this level." |
3430 | 4367 |
4368 (interactive "P") | |
4369 | |
4370 (save-excursion | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4371 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4372 (allout-beginning-of-level) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4373 (let ((depth allout-recent-depth) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4374 (index (if (not denumber) 1)) |
3430 | 4375 (use-bullet (equal '(16) denumber)) |
4376 (more t)) | |
4377 (while more | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4378 (allout-rebullet-heading use-bullet ;;; solicit |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4379 depth ;;; depth |
3430 | 4380 t ;;; number-control |
4381 index ;;; index | |
4382 nil) ;;; do-successors | |
4383 (if index (setq index (1+ index))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4384 (setq more (allout-next-sibling depth nil)))))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4385 ;;;_ > allout-shift-in (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4386 (defun allout-shift-in (arg) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4387 "Increase depth of current heading and any items collapsed within it. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4388 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4389 With a negative argument, the item is shifted out using |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4390 `allout-shift-out', instead. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4391 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4392 With an argument greater than one, shift-in the item but not its |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4393 offspring, making the item into a sibling of its former children, |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4394 and a child of sibling that formerly preceeded it. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4395 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4396 You are not allowed to shift the first offspring of a topic |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4397 inwards, because that would yield a \"containment |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4398 discontinuity\", where the depth difference between a topic and |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4399 its immediate offspring is greater than one. The first topic in |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4400 the file can be adjusted to any positive depth, however." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4401 |
3430 | 4402 (interactive "p") |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4403 (if (< arg 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4404 (allout-shift-out (* arg -1)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4405 ;; refuse to create a containment discontinuity: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4406 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4407 (allout-back-to-current-heading) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4408 (if (not (bobp)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4409 (let* ((current-depth allout-recent-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4410 (start-point (point)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4411 (predecessor-depth (progn |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4412 (forward-char -1) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4413 (allout-goto-prefix-doublechecked) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4414 (if (< (point) start-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4415 allout-recent-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4416 0)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4417 (if (and (> predecessor-depth 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4418 (> (1+ current-depth) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4419 (1+ predecessor-depth))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4420 (error (concat "Disallowed shift deeper than" |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
4421 " containing topic's children.")) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
4422 (allout-back-to-current-heading) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
4423 (if (< allout-recent-depth (1+ current-depth)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
4424 (allout-show-children)))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4425 (let ((where (point))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4426 (allout-rebullet-topic 1 (and (> arg 1) 'sans-offspring)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4427 (run-hook-with-args 'allout-structure-shifted-hook arg where)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4428 ;;;_ > allout-shift-out (arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4429 (defun allout-shift-out (arg) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4430 "Decrease depth of current heading and any topics collapsed within it. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4431 This will make the item a sibling of its former container. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4432 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4433 With a negative argument, the item is shifted in using |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4434 `allout-shift-in', instead. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4435 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4436 With an argument greater than one, shift-out the item's offspring |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4437 but not the item itself, making the former children siblings of |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4438 the item. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4439 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4440 With an argument greater than 1, the item's offspring are shifted |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4441 out without shifting the item. This will make the immediate |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4442 subtopics into siblings of the item." |
3430 | 4443 (interactive "p") |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4444 (if (< arg 0) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4445 (allout-shift-in (* arg -1)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4446 ;; Get proper exposure in this area: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4447 (save-excursion (if (allout-ascend) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4448 (allout-show-children))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4449 ;; Show collapsed children if there's a successor which will become |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4450 ;; their sibling: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4451 (if (and (allout-current-topic-collapsed-p) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4452 (save-excursion (allout-next-sibling))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4453 (allout-show-children)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4454 (let ((where (and (allout-depth) allout-recent-prefix-beginning))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4455 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4456 (if (> arg 1) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4457 ;; Shift the offspring but not the topic: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4458 (let ((children-chart (allout-chart-subtree 1))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4459 (if (listp (car children-chart)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4460 ;; whoops: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4461 (setq children-chart (allout-flatten children-chart))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4462 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4463 (dolist (child-point children-chart) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4464 (goto-char child-point) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4465 (allout-shift-out 1)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4466 (allout-rebullet-topic (* arg -1)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4467 (run-hook-with-args 'allout-structure-shifted-hook (* arg -1) where)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4468 ;;;_ : Surgery (kill-ring) functions with special provisions for outlines: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4469 ;;;_ > allout-kill-line (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4470 (defun allout-kill-line (&optional arg) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4471 "Kill line, adjusting subsequent lines suitably for outline mode." |
3430 | 4472 |
4473 (interactive "*P") | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4474 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4475 (if (or (not (allout-mode-p)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4476 (not (bolp)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4477 (not (save-match-data (looking-at allout-regexp)))) |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
4478 ;; Just do a regular kill: |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4479 (kill-line arg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4480 ;; Ah, have to watch out for adjustments: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4481 (let* ((beg (point)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4482 end |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4483 (beg-hidden (allout-hidden-p)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4484 (end-hidden (save-excursion (allout-end-of-current-line) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4485 (setq end (point)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4486 (allout-hidden-p))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4487 (depth (allout-depth))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4488 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4489 (allout-annotate-hidden beg end) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4490 (if (and (not beg-hidden) (not end-hidden)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4491 (allout-unprotected (kill-line arg)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4492 (kill-line arg)) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4493 (allout-deannotate-hidden beg end) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4494 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4495 (if allout-numbered-bullet |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4496 (save-excursion ; Renumber subsequent topics if needed: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4497 (if (not (save-match-data (looking-at allout-regexp))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4498 (allout-next-heading)) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4499 (allout-renumber-to-depth depth))) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4500 (run-hook-with-args 'allout-structure-deleted-hook depth (point))))) |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4501 ;;;_ > allout-copy-line-as-kill () |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4502 (defun allout-copy-line-as-kill () |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4503 "Like allout-kill-topic, but save to kill ring instead of deleting." |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4504 (interactive) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4505 (let ((buffer-read-only t)) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4506 (condition-case nil |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4507 (allout-kill-line) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4508 (buffer-read-only nil)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4509 ;;;_ > allout-kill-topic () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4510 (defun allout-kill-topic () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4511 "Kill topic together with subtopics. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4512 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4513 Trailing whitespace is killed with a topic if that whitespace: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4514 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4515 - would separate the topic from a subsequent sibling |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4516 - would separate the topic from the end of buffer |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4517 - would not be added to whitespace already separating the topic from the |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4518 previous one. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4519 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4520 Topic exposure is marked with text-properties, to be used by |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4521 `allout-yank-processing' for exposure recovery." |
3430 | 4522 |
4523 (interactive) | |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
4524 (let* ((inhibit-field-text-motion t) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4525 (beg (prog1 (allout-back-to-current-heading) (beginning-of-line))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4526 end |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4527 (depth allout-recent-depth)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4528 (allout-end-of-current-subtree) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4529 (if (and (/= (current-column) 0) (not (eobp))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4530 (forward-char 1)) |
3430 | 4531 (if (not (eobp)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4532 (if (and (save-match-data (looking-at "\n")) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4533 (or (save-excursion |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4534 (or (not (allout-next-heading)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4535 (= depth allout-recent-depth))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4536 (and (> (- beg (point-min)) 3) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4537 (string= (buffer-substring (- beg 2) beg) "\n\n")))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4538 (forward-char 1))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
4539 |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4540 (allout-annotate-hidden beg (setq end (point))) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4541 (unwind-protect |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4542 (allout-unprotected (kill-region beg end)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4543 (if buffer-read-only |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4544 ;; eg, during copy-as-kill. |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4545 (allout-deannotate-hidden beg end))) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4546 |
3430 | 4547 (save-excursion |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4548 (allout-renumber-to-depth depth)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4549 (run-hook-with-args 'allout-structure-deleted-hook depth (point)))) |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4550 ;;;_ > allout-copy-topic-as-kill () |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4551 (defun allout-copy-topic-as-kill () |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
4552 "Like `allout-kill-topic', but save to kill ring instead of deleting." |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4553 (interactive) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4554 (let ((buffer-read-only t)) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4555 (condition-case nil |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4556 (allout-kill-topic) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4557 (buffer-read-only (message "Topic copied..."))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4558 ;;;_ > allout-annotate-hidden (begin end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4559 (defun allout-annotate-hidden (begin end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4560 "Qualify text with properties to indicate exposure status." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4561 |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4562 (let ((was-modified (buffer-modified-p)) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4563 (buffer-read-only nil)) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4564 (allout-deannotate-hidden begin end) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4565 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4566 (goto-char begin) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4567 (let (done next prev overlay) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4568 (while (not done) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4569 ;; at or advance to start of next hidden region: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4570 (if (not (allout-hidden-p)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4571 (setq next |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
4572 (max (1+ (point)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4573 (allout-next-single-char-property-change (point) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4574 'invisible |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4575 nil end)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4576 (if (or (not next) (eq prev next)) |
79939 | 4577 ;; still not at start of hidden area -- must not be any left. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4578 (setq done t) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4579 (goto-char next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4580 (setq prev next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4581 (if (not (allout-hidden-p)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4582 ;; still not at start of hidden area. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4583 (setq done t) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4584 (setq overlay (allout-get-invisibility-overlay)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4585 (setq next (overlay-end overlay) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4586 prev next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4587 ;; advance to end of this hidden area: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4588 (when next |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4589 (goto-char next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4590 (allout-unprotected |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4591 (let ((buffer-undo-list t)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4592 (put-text-property (overlay-start overlay) next |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4593 'allout-was-hidden t))))))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4594 (set-buffer-modified-p was-modified))) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4595 ;;;_ > allout-deannotate-hidden (begin end) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4596 (defun allout-deannotate-hidden (begin end) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4597 "Remove allout hidden-text annotation between BEGIN and END." |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4598 |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4599 (allout-unprotected |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4600 (let ((inhibit-read-only t) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4601 (buffer-undo-list t)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4602 ;(remove-text-properties begin end '(allout-was-hidden t)) |
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4603 ))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4604 ;;;_ > allout-hide-by-annotation (begin end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4605 (defun allout-hide-by-annotation (begin end) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4606 "Translate text properties indicating exposure status into actual exposure." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4607 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4608 (goto-char begin) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4609 (let ((was-modified (buffer-modified-p)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4610 done next prev) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4611 (while (not done) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4612 ;; at or advance to start of next annotation: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4613 (if (not (get-text-property (point) 'allout-was-hidden)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4614 (setq next (allout-next-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4615 (point) 'allout-was-hidden nil end))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4616 (if (or (not next) (eq prev next)) |
79939 | 4617 ;; no more or not advancing -- must not be any left. |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4618 (setq done t) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4619 (goto-char next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4620 (setq prev next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4621 (if (not (get-text-property (point) 'allout-was-hidden)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4622 ;; still not at start of annotation. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4623 (setq done t) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4624 ;; advance to just after end of this annotation: |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4625 (setq next (allout-next-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4626 (point) 'allout-was-hidden nil end)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4627 (overlay-put (make-overlay prev next nil 'front-advance) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4628 'category 'allout-exposure-category) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
4629 (allout-deannotate-hidden prev next) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4630 (setq prev next) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4631 (if next (goto-char next))))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4632 (set-buffer-modified-p was-modified)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4633 ;;;_ > allout-yank-processing () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4634 (defun allout-yank-processing (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4635 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4636 "Incidental allout-specific business to be done just after text yanks. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4637 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4638 Does depth adjustment of yanked topics, when: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4639 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4640 1 the stuff being yanked starts with a valid outline header prefix, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4641 2 it is being yanked at the end of a line which consists of only a valid |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4642 topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4643 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
4644 Also, adjusts numbering of subsequent siblings when appropriate. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4645 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4646 Depth adjustment alters the depth of all the topics being yanked |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4647 the amount it takes to make the first topic have the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4648 header into which it's being yanked. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4649 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4650 The point is left in front of yanked, adjusted topics, rather than |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4651 at the end (and vice-versa with the mark). Non-adjusted yanks, |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4652 however, are left exactly like normal, non-allout-specific yanks." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4653 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4654 (interactive "*P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4655 ; Get to beginning, leaving |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4656 ; region around subject: |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4657 (if (< (allout-mark-marker t) (point)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4658 (exchange-point-and-mark)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4659 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4660 (let* ((subj-beg (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4661 (into-bol (bolp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4662 (subj-end (allout-mark-marker t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4663 ;; 'resituate' if yanking an entire topic into topic header: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4664 (resituate (and (let ((allout-inhibit-aberrance-doublecheck t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4665 (allout-e-o-prefix-p)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4666 (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4667 (allout-prefix-data))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4668 ;; `rectify-numbering' if resituating (where several topics may |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4669 ;; be resituating) or yanking a topic into a topic slot (bol): |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4670 (rectify-numbering (or resituate |
88056 | 4671 (and into-bol (looking-at allout-regexp))))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4672 (if resituate |
88056 | 4673 ;; Yanking a topic into the start of a topic -- reconcile to fit: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4674 (let* ((inhibit-field-text-motion t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4675 (prefix-len (if (not (match-end 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4676 1 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4677 (- (match-end 1) subj-beg))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4678 (subj-depth allout-recent-depth) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4679 (prefix-bullet (allout-recent-bullet)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4680 (adjust-to-depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4681 ;; Nil if adjustment unnecessary, otherwise depth to which |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4682 ;; adjustment should be made: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4683 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4684 (and (goto-char subj-end) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4685 (eolp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4686 (goto-char subj-beg) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4687 (and (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4688 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4689 (beginning-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4690 (not (= (point) subj-beg))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4691 (looking-at allout-regexp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4692 (allout-prefix-data)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4693 allout-recent-depth))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4694 (more t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4695 (setq rectify-numbering allout-numbered-bullet) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4696 (if adjust-to-depth |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4697 ; Do the adjustment: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4698 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4699 (save-restriction |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4700 (narrow-to-region subj-beg subj-end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4701 ; Trim off excessive blank |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4702 ; line at end, if any: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4703 (goto-char (point-max)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4704 (if (looking-at "^$") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4705 (allout-unprotected (delete-char -1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4706 ; Work backwards, with each |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4707 ; shallowest level, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4708 ; successively excluding the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4709 ; last processed topic from |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4710 ; the narrow region: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4711 (while more |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4712 (allout-back-to-current-heading) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4713 ; go as high as we can in each bunch: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4714 (while (allout-ascend t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4715 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4716 (allout-unprotected |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4717 (allout-rebullet-topic-grunt (- adjust-to-depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4718 subj-depth))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4719 (allout-depth)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4720 (if (setq more (not (bobp))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4721 (progn (widen) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4722 (forward-char -1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4723 (narrow-to-region subj-beg (point)))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4724 ;; Preserve new bullet if it's a distinctive one, otherwise |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4725 ;; use old one: |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4726 (if (string-match (regexp-quote prefix-bullet) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4727 allout-distinctive-bullets-string) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4728 ; Delete from bullet of old to |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4729 ; before bullet of new: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4730 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4731 (beginning-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4732 (allout-unprotected |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4733 (delete-region (point) subj-beg)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4734 (set-marker (allout-mark-marker t) subj-end) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4735 (goto-char subj-beg) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4736 (allout-end-of-prefix)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4737 ; Delete base subj prefix, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4738 ; leaving old one: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4739 (allout-unprotected |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4740 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4741 (delete-region (point) (+ (point) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4742 prefix-len |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4743 (- adjust-to-depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4744 subj-depth))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4745 ; and delete residual subj |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4746 ; prefix digits and space: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4747 (while (looking-at "[0-9]") (delete-char 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4748 (if (looking-at " ") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4749 (delete-char 1)))))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4750 (exchange-point-and-mark)))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4751 (if rectify-numbering |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4752 (progn |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4753 (save-excursion |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4754 ; Give some preliminary feedback: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4755 (message "... reconciling numbers") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4756 ; ... and renumber, in case necessary: |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4757 (goto-char subj-beg) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4758 (if (allout-goto-prefix-doublechecked) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4759 (allout-unprotected |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4760 (allout-rebullet-heading nil ;;; solicit |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4761 (allout-depth) ;;; depth |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4762 nil ;;; number-control |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4763 nil ;;; index |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4764 t))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4765 (message "")))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4766 (if (or into-bol resituate) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4767 (allout-hide-by-annotation (point) (allout-mark-marker t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4768 (allout-deannotate-hidden (allout-mark-marker t) (point))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4769 (if (not resituate) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4770 (exchange-point-and-mark)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4771 (run-hook-with-args 'allout-structure-added-hook subj-beg subj-end)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4772 ;;;_ > allout-yank (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4773 (defun allout-yank (&optional arg) |
48858
f4d079377a9a
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48857
diff
changeset
|
4774 "`allout-mode' yank, with depth and numbering adjustment of yanked topics. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4775 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
4776 Non-topic yanks work no differently than normal yanks. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4777 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4778 If a topic is being yanked into a bare topic prefix, the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4779 yanked topic is adjusted to the depth of the topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4780 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
4781 1 we're yanking in an `allout-mode' buffer |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4782 2 the stuff being yanked starts with a valid outline header prefix, and |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4783 3 it is being yanked at the end of a line which consists of only a valid |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4784 topic prefix. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4785 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4786 If these conditions hold then the depth of the yanked topics are all |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4787 adjusted the amount it takes to make the first one at the depth of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4788 header into which it's being yanked. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4789 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4790 The point is left in front of yanked, adjusted topics, rather than |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4791 at the end (and vice-versa with the mark). Non-adjusted yanks, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4792 however, (ones that don't qualify for adjustment) are handled |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4793 exactly like normal yanks. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4794 |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
4795 Numbering of yanked topics, and the successive siblings at the depth |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4796 into which they're being yanked, is adjusted. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4797 |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
4798 `allout-yank-pop' works with `allout-yank' just like normal `yank-pop' |
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
4799 works with normal `yank' in non-outline buffers." |
3430 | 4800 |
4801 (interactive "*P") | |
4802 (setq this-command 'yank) | |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4803 (allout-unprotected |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4804 (yank arg)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4805 (if (allout-mode-p) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4806 (allout-yank-processing))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4807 ;;;_ > allout-yank-pop (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4808 (defun allout-yank-pop (&optional arg) |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
4809 "Yank-pop like `allout-yank' when popping to bare outline prefixes. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4810 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4811 Adapts level of popped topics to level of fresh prefix. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4812 |
79939 | 4813 Note -- prefix changes to distinctive bullets will stick, if followed |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4814 by pops to non-distinctive yanks. Bug..." |
3430 | 4815 |
4816 (interactive "*p") | |
4817 (setq this-command 'yank) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4818 (yank-pop arg) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4819 (if (allout-mode-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4820 (allout-yank-processing))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4821 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4822 ;;;_ - Specialty bullet functions |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4823 ;;;_ : File Cross references |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4824 ;;;_ > allout-resolve-xref () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4825 (defun allout-resolve-xref () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4826 "Pop to file associated with current heading, if it has an xref bullet. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4827 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4828 \(Works according to setting of `allout-file-xref-bullet')." |
3430 | 4829 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4830 (if (not allout-file-xref-bullet) |
3430 | 4831 (error |
79939 | 4832 "Outline cross references disabled -- no `allout-file-xref-bullet'") |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4833 (if (not (string= (allout-current-bullet) allout-file-xref-bullet)) |
64428
e55dd693f95b
(allout-resolve-xref): Fix typos in error strings.
Juanma Barranquero <lekktu@gmail.com>
parents:
64400
diff
changeset
|
4834 (error "Current heading lacks cross-reference bullet `%s'" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4835 allout-file-xref-bullet) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
4836 (let ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
4837 file-name) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4838 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4839 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4840 (let* ((text-start allout-recent-prefix-end) |
111445
56b71cddc9c5
Replace still more end-of-line etc with line-end-position, etc.
Glenn Morris <rgm@gnu.org>
parents:
108209
diff
changeset
|
4841 (heading-end (point-at-eol))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4842 (goto-char text-start) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4843 (setq file-name |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4844 (if (re-search-forward "\\s-\\(\\S-*\\)" heading-end t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4845 (buffer-substring (match-beginning 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4846 (match-end 1))))))) |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
4847 (setq file-name (expand-file-name file-name)) |
3430 | 4848 (if (or (file-exists-p file-name) |
4849 (if (file-writable-p file-name) | |
4850 (y-or-n-p (format "%s not there, create one? " | |
4851 file-name)) | |
4852 (error "%s not found and can't be created" file-name))) | |
4853 (condition-case failure | |
4854 (find-file-other-window file-name) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4855 (error failure)) |
3430 | 4856 (error "%s not found" file-name)) |
4857 ) | |
4858 ) | |
4859 ) | |
4860 ) | |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4861 |
29490 | 4862 ;;;_ #6 Exposure Control |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4863 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4864 ;;;_ - Fundamental |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4865 ;;;_ > allout-flag-region (from to flag) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
4866 (defun allout-flag-region (from to flag) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4867 "Conceal text between FROM and TO if FLAG is non-nil, else reveal it. |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4868 |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4869 Exposure-change hook `allout-exposure-change-hook' is run with the same |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
4870 arguments as this function, after the exposure changes are made. (The old |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4871 `allout-view-change-hook' is being deprecated, and eventually will not be |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
4872 invoked.)" |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4873 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4874 ;; We use outline invisibility spec. |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4875 (remove-overlays from to 'category 'allout-exposure-category) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4876 (when flag |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
4877 (let ((o (make-overlay from to nil 'front-advance))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4878 (overlay-put o 'category 'allout-exposure-category) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4879 (when (featurep 'xemacs) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4880 (let ((props (symbol-plist 'allout-exposure-category))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4881 (while props |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4882 (condition-case nil |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4883 ;; as of 2008-02-27, xemacs lacks modification-hooks |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4884 (overlay-put o (pop props) (pop props)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4885 (error nil))))))) |
70616
b69cce4ff5a0
2006-05-12 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70256
diff
changeset
|
4886 (run-hooks 'allout-view-change-hook) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
4887 (run-hook-with-args 'allout-exposure-change-hook from to flag)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4888 ;;;_ > allout-flag-current-subtree (flag) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4889 (defun allout-flag-current-subtree (flag) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4890 "Conceal currently-visible topic's subtree if FLAG non-nil, else reveal it." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4891 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4892 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4893 (allout-back-to-current-heading) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
4894 (let ((inhibit-field-text-motion t)) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
4895 (end-of-line)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4896 (allout-flag-region (point) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4897 ;; Exposing must not leave trailing blanks hidden, |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4898 ;; but can leave them exposed when hiding, so we |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4899 ;; can use flag's inverse as the |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4900 ;; include-trailing-blank cue: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4901 (allout-end-of-current-subtree (not flag)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4902 flag))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4903 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4904 ;;;_ - Topic-specific |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4905 ;;;_ > allout-show-entry () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4906 (defun allout-show-entry () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
4907 "Like `allout-show-current-entry', but reveals entries in hidden topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4908 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4909 This is a way to give restricted peek at a concealed locality without the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4910 expense of exposing its context, but can leave the outline with aberrant |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4911 exposure. `allout-show-offshoot' should be used after the peek to rectify |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4912 the exposure." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4913 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4914 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4915 (save-excursion |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4916 (let (beg end) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4917 (allout-goto-prefix-doublechecked) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4918 (setq beg (if (allout-hidden-p) (1- (point)) (point))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4919 (setq end (allout-pre-next-prefix)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4920 (allout-flag-region beg end nil) |
29490 | 4921 (list beg end)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4922 ;;;_ > allout-show-children (&optional level strict) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
4923 (defun allout-show-children (&optional level strict) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4924 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4925 "If point is visible, show all direct subheadings of this heading. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4926 |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
4927 Otherwise, do `allout-show-to-offshoot', and then show subheadings. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4928 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4929 Optional LEVEL specifies how many levels below the current level |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4930 should be shown, or all levels if t. Default is 1. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4931 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4932 Optional STRICT means don't resort to -show-to-offshoot, no matter |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4933 what. This is basically so -show-to-offshoot, which is called by |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4934 this function, can employ the pure offspring-revealing capabilities of |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4935 it. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4936 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4937 Returns point at end of subtree that was opened, if any. (May get a |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4938 point of non-opened subtree?)" |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4939 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
4940 (interactive "p") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4941 (let ((start-point (point))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4942 (if (and (not strict) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4943 (allout-hidden-p)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4944 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4945 (progn (allout-show-to-offshoot) ; Point's concealed, open to |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4946 ; expose it. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4947 ;; Then recurse, but with "strict" set so we don't |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4948 ;; infinite regress: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4949 (allout-show-children level t)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4950 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
4951 (save-excursion |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4952 (allout-beginning-of-current-line) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4953 (save-restriction |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4954 (let* (depth |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4955 ;; translate the level spec for this routine to the ones |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4956 ;; used by -chart-subtree and -chart-to-reveal: |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4957 (chart-level (cond ((not level) 1) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4958 ((eq level t) nil) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4959 (t level))) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4960 (chart (allout-chart-subtree chart-level)) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
4961 (to-reveal (or (allout-chart-to-reveal chart chart-level) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4962 ;; interactive, show discontinuous children: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4963 (and chart |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
4964 (allout-called-interactively-p) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4965 (save-excursion |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4966 (allout-back-to-current-heading) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4967 (setq depth (allout-current-depth)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4968 (and (allout-next-heading) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4969 (> allout-recent-depth |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4970 (1+ depth)))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4971 (message |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4972 "Discontinuous offspring; use `%s %s'%s." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4973 (substitute-command-keys |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4974 "\\[universal-argument]") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4975 (substitute-command-keys |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4976 "\\[allout-shift-out]") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4977 " to elevate them.") |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4978 (allout-chart-to-reveal |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
4979 chart (- allout-recent-depth depth)))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4980 (goto-char start-point) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4981 (when (and strict (allout-hidden-p)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4982 ;; Concealed root would already have been taken care of, |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4983 ;; unless strict was set. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4984 (allout-flag-region (point) (allout-snug-back) nil) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4985 (when allout-show-bodies |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4986 (goto-char (car to-reveal)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4987 (allout-show-current-entry))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4988 (while to-reveal |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4989 (goto-char (car to-reveal)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4990 (allout-flag-region (save-excursion (allout-snug-back) (point)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4991 (progn (search-forward "\n" nil t) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4992 (1- (point))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4993 nil) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4994 (when allout-show-bodies |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4995 (goto-char (car to-reveal)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4996 (allout-show-current-entry)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4997 (setq to-reveal (cdr to-reveal))))))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4998 ;; Compensate for `save-excursion's maintenance of point |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
4999 ;; within invisible text: |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5000 (goto-char start-point))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5001 ;;;_ > allout-show-to-offshoot () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5002 (defun allout-show-to-offshoot () |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
5003 "Like `allout-show-entry', but reveals all concealed ancestors, as well. |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
5004 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5005 Useful for coherently exposing to a random point in a hidden region." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5006 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5007 (save-excursion |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5008 (let ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5009 (orig-pt (point)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5010 (orig-pref (allout-goto-prefix-doublechecked)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5011 (last-at (point)) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5012 (bag-it 0)) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5013 (while (or (> bag-it 1) (allout-hidden-p)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5014 (while (allout-hidden-p) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5015 (move-beginning-of-line 1) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5016 (if (allout-hidden-p) (forward-char -1))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5017 (if (= last-at (setq last-at (point))) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5018 ;; Oops, we're not making any progress! Show the current topic |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5019 ;; completely, and try one more time here, if we haven't already. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5020 (progn (beginning-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5021 (allout-show-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5022 (goto-char orig-pt) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5023 (setq bag-it (1+ bag-it)) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5024 (if (> bag-it 1) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5025 (error "allout-show-to-offshoot: %s" |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5026 "Stumped by aberrant nesting."))) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5027 (if (> bag-it 0) (setq bag-it 0)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5028 (allout-show-children) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5029 (goto-char orig-pref))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5030 (goto-char orig-pt))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5031 (if (allout-hidden-p) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5032 (allout-show-entry))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5033 ;;;_ > allout-hide-current-entry () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5034 (defun allout-hide-current-entry () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5035 "Hide the body directly following this heading." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5036 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5037 (allout-back-to-current-heading) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5038 (save-excursion |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5039 (let ((inhibit-field-text-motion t)) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5040 (end-of-line)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5041 (allout-flag-region (point) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5042 (progn (allout-end-of-entry) (point)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5043 t))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5044 ;;;_ > allout-show-current-entry (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5045 (defun allout-show-current-entry (&optional arg) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5046 "Show body following current heading, or hide entry with universal argument." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5047 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5048 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5049 (if arg |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5050 (allout-hide-current-entry) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5051 (save-excursion (allout-show-to-offshoot)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5052 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5053 (allout-flag-region (point) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5054 (progn (allout-end-of-entry t) (point)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5055 nil) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5056 ))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5057 ;;;_ > allout-show-current-subtree (&optional arg) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5058 (defun allout-show-current-subtree (&optional arg) |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
5059 "Show everything within the current topic. |
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
5060 With a repeat-count, expose this topic and its siblings." |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5061 (interactive "P") |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5062 (save-excursion |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5063 (if (<= (allout-current-depth) 0) |
79939 | 5064 ;; Outside any topics -- try to get to the first: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5065 (if (not (allout-next-heading)) |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
5066 (error "No topics") |
79939 | 5067 ;; got to first, outermost topic -- set to expose it and siblings: |
5068 (message "Above outermost topic -- exposing all.") | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5069 (allout-flag-region (point-min)(point-max) nil)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5070 (allout-beginning-of-current-line) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5071 (if (not arg) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5072 (allout-flag-current-subtree nil) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5073 (allout-beginning-of-level) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5074 (allout-expose-topic '(* :)))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5075 ;;;_ > allout-current-topic-collapsed-p (&optional include-single-liners) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5076 (defun allout-current-topic-collapsed-p (&optional include-single-liners) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5077 "True if the currently visible containing topic is already collapsed. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5078 |
70673
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
5079 Single line topics intrinsically can be considered as being both |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
5080 collapsed and uncollapsed. If optional INCLUDE-SINGLE-LINERS is |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
5081 true, then single-line topics are considered to be collapsed. By |
798fa39b6207
2006-05-16 Ken Manheimer <ken.manheimer@gmail.com>
Reiner Steib <Reiner.Steib@gmx.de>
parents:
70616
diff
changeset
|
5082 default, they are treated as being uncollapsed." |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5083 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5084 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5085 (and |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5086 ;; Is the topic all on one line (allowing for trailing blank line)? |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5087 (>= (progn (allout-back-to-current-heading) |
112119
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
5088 (let ((inhibit-field-text-motion t)) |
48f5ac42611a
Reconcile with changes in line movement behavior for long text lines
Ken Manheimer <ken.manheimer@gmail.com>
parents:
112044
diff
changeset
|
5089 (move-end-of-line 1)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5090 (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5091 (allout-end-of-current-subtree (not (looking-at "\n\n")))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5092 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5093 (or include-single-liners |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5094 (progn (backward-char 1) (allout-hidden-p))))))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5095 ;;;_ > allout-hide-current-subtree (&optional just-close) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5096 (defun allout-hide-current-subtree (&optional just-close) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5097 "Close the current topic, or containing topic if this one is already closed. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5098 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5099 If this topic is closed and it's a top level topic, close this topic |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5100 and its siblings. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5101 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5102 If optional arg JUST-CLOSE is non-nil, do not close the parent or |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5103 siblings, even if the target topic is already closed." |
3430 | 5104 |
5105 (interactive) | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5106 (let* ((from (point)) |
79939 | 5107 (sibs-msg "Top-level topic already closed -- closing siblings...") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5108 (current-exposed (not (allout-current-topic-collapsed-p t)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5109 (cond (current-exposed (allout-flag-current-subtree t)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5110 (just-close nil) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5111 ((allout-ascend) (allout-hide-current-subtree)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5112 (t (goto-char 0) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5113 (message sibs-msg) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5114 (allout-goto-prefix-doublechecked) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5115 (allout-expose-topic '(0 :)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5116 (message (concat sibs-msg " Done.")))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5117 (goto-char from))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5118 ;;;_ > allout-toggle-current-subtree-exposure |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5119 (defun allout-toggle-current-subtree-exposure () |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5120 "Show or hide the current subtree depending on its current state." |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5121 ;; thanks to tassilo for suggesting this. |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5122 (interactive) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5123 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5124 (allout-back-to-heading) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5125 (if (allout-hidden-p (point-at-eol)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5126 (allout-show-current-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5127 (allout-hide-current-subtree)))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5128 ;;;_ > allout-show-current-branches () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5129 (defun allout-show-current-branches () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5130 "Show all subheadings of this heading, but not their bodies." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5131 (interactive) |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5132 (let ((inhibit-field-text-motion t)) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5133 (beginning-of-line)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5134 (allout-show-children t)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5135 ;;;_ > allout-hide-current-leaves () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5136 (defun allout-hide-current-leaves () |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5137 "Hide the bodies of the current topic and all its offspring." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5138 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5139 (allout-back-to-current-heading) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5140 (allout-hide-region-body (point) (progn (allout-end-of-current-subtree) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5141 (point)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5142 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5143 ;;;_ - Region and beyond |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5144 ;;;_ > allout-show-all () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5145 (defun allout-show-all () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5146 "Show all of the text in the buffer." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5147 (interactive) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5148 (message "Exposing entire buffer...") |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5149 (allout-flag-region (point-min) (point-max) nil) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5150 (message "Exposing entire buffer... Done.")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5151 ;;;_ > allout-hide-bodies () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5152 (defun allout-hide-bodies () |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5153 "Hide all of buffer except headings." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5154 (interactive) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5155 (allout-hide-region-body (point-min) (point-max))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5156 ;;;_ > allout-hide-region-body (start end) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5157 (defun allout-hide-region-body (start end) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5158 "Hide all body lines in the region, but not headings." |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5159 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5160 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5161 (save-restriction |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5162 (narrow-to-region start end) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5163 (goto-char (point-min)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5164 (let ((inhibit-field-text-motion t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5165 (while (not (eobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5166 (end-of-line) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5167 (allout-flag-region (point) (allout-end-of-entry) t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5168 (if (not (eobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5169 (forward-char |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5170 (if (looking-at "\n\n") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5171 2 1))))))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5172 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5173 ;;;_ > allout-expose-topic (spec) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5174 (defun allout-expose-topic (spec) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5175 "Apply exposure specs to successive outline topic items. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5176 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5177 Use the more convenient frontend, `allout-new-exposure', if you don't |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5178 need evaluation of the arguments, or even better, the `allout-layout' |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5179 variable-keyed mode-activation/auto-exposure feature of allout outline |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5180 mode. See the respective documentation strings for more details. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5181 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5182 Cursor is left at start position. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5183 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5184 SPEC is either a number or a list. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5185 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5186 Successive specs on a list are applied to successive sibling topics. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5187 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5188 A simple spec (either a number, one of a few symbols, or the null |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5189 list) dictates the exposure for the corresponding topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5190 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5191 Non-null lists recursively designate exposure specs for respective |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5192 subtopics of the current topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5193 |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5194 The `:' repeat spec is used to specify exposure for any number of |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5195 successive siblings, up to the trailing ones for which there are |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5196 explicit specs following the `:'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5197 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5198 Simple (numeric and null-list) specs are interpreted as follows: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5199 |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5200 Numbers indicate the relative depth to open the corresponding topic. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5201 - negative numbers force the topic to be closed before opening to the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5202 absolute value of the number, so all siblings are open only to |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5203 that level. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5204 - positive numbers open to the relative depth indicated by the |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5205 number, but do not force already opened subtopics to be closed. |
79939 | 5206 - 0 means to close topic -- hide all offspring. |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5207 : - `repeat' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5208 apply prior element to all siblings at current level, *up to* |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5209 those siblings that would be covered by specs following the `:' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5210 on the list. Ie, apply to all topics at level but the last |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5211 ones. (Only first of multiple colons at same level is |
79939 | 5212 respected -- subsequent ones are discarded.) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5213 * - completely opens the topic, including bodies. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5214 + - shows all the sub headers, but not the bodies |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5215 - - exposes the body of the corresponding topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5216 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5217 Examples: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5218 \(allout-expose-topic '(-1 : 0)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5219 Close this and all following topics at current level, exposing |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5220 only their immediate children, but close down the last topic |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5221 at this current level completely. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5222 \(allout-expose-topic '(-1 () : 1 0)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5223 Close current topic so only the immediate subtopics are shown; |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5224 show the children in the second to last topic, and completely |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5225 close the last one. |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5226 \(allout-expose-topic '(-2 : -1 *)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5227 Expose children and grandchildren of all topics at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5228 level except the last two; expose children of the second to |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5229 last and completely open the last one." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5230 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5231 (interactive "xExposure spec: ") |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5232 (if (not (listp spec)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5233 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5234 (let ((depth (allout-depth)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5235 (max-pos 0) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5236 prev-elem curr-elem |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5237 stay) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5238 (while spec |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5239 (setq prev-elem curr-elem |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5240 curr-elem (car spec) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5241 spec (cdr spec)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5242 (cond ; Do current element: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5243 ((null curr-elem) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5244 ((symbolp curr-elem) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5245 (cond ((eq curr-elem '*) (allout-show-current-subtree) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5246 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5247 (setq max-pos allout-recent-end-of-subtree))) |
73201
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5248 ((eq curr-elem '+) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5249 (if (not (allout-hidden-p)) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5250 (save-excursion (allout-hide-current-subtree t))) |
16a7031b0447
(allout-expose-topic): Rectify implementation of "+" spec, so that bodies are
Eli Zaretskii <eliz@gnu.org>
parents:
73003
diff
changeset
|
5251 (allout-show-current-branches) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5252 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5253 (setq max-pos allout-recent-end-of-subtree))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5254 ((eq curr-elem '-) (allout-show-current-entry)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5255 ((eq curr-elem ':) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5256 (setq stay t) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5257 ;; Expand the `repeat' spec to an explicit version, |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5258 ;; w.r.t. remaining siblings: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5259 (let ((residue ; = # of sibs not covered by remaining spec |
79939 | 5260 ;; Dang, could be nice to make use of the chart, sigh: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5261 (- (length (allout-chart-siblings)) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5262 (length spec)))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5263 (if (< 0 residue) |
79939 | 5264 ;; Some residue -- cover it with prev-elem: |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5265 (setq spec (append (make-list residue prev-elem) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5266 spec))))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5267 ((numberp curr-elem) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5268 (if (and (>= 0 curr-elem) (not (allout-hidden-p))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5269 (save-excursion (allout-hide-current-subtree t) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5270 (if (> 0 curr-elem) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5271 nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5272 (if (> allout-recent-end-of-subtree max-pos) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5273 (setq max-pos |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5274 allout-recent-end-of-subtree))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5275 (if (> (abs curr-elem) 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5276 (progn (allout-show-children (abs curr-elem)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5277 (if (> allout-recent-end-of-subtree max-pos) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5278 (setq max-pos allout-recent-end-of-subtree))))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5279 ((listp curr-elem) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5280 (if (allout-descend-to-depth (1+ depth)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5281 (let ((got (allout-expose-topic curr-elem))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5282 (if (and got (> got max-pos)) (setq max-pos got)))))) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5283 (cond (stay (setq stay nil)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5284 ((listp (car spec)) nil) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5285 ((> max-pos (point)) |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5286 ;; Capitalize on max-pos state to get us nearer next sibling: |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5287 (progn (goto-char (min (point-max) max-pos)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5288 (allout-next-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5289 ((allout-next-sibling depth)))) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5290 max-pos))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5291 ;;;_ > allout-old-expose-topic (spec &rest followers) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5292 (defun allout-old-expose-topic (spec &rest followers) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5293 |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5294 "Deprecated. Use `allout-expose-topic' (with different schema |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5295 format) instead. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5296 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5297 Dictate wholesale exposure scheme for current topic, according to SPEC. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5298 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5299 SPEC is either a number or a list. Optional successive args |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5300 dictate exposure for subsequent siblings of current topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5301 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5302 A simple spec (either a number, a special symbol, or the null list) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5303 dictates the overall exposure for a topic. Non null lists are |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5304 composite specs whose first element dictates the overall exposure for |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5305 a topic, with the subsequent elements in the list interpreted as specs |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5306 that dictate the exposure for the successive offspring of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5307 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5308 Simple (numeric and null-list) specs are interpreted as follows: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5309 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5310 - Numbers indicate the relative depth to open the corresponding topic: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5311 - negative numbers force the topic to be close before opening to the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5312 absolute value of the number. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5313 - positive numbers just open to the relative depth indicated by the number. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5314 - 0 just closes |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5315 - `*' completely opens the topic, including bodies. |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5316 - `+' shows all the sub headers, but not the bodies |
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5317 - `-' exposes the body and immediate offspring of the corresponding topic. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5318 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5319 If the spec is a list, the first element must be a number, which |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5320 dictates the exposure depth of the topic as a whole. Subsequent |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5321 elements of the list are nested SPECs, dictating the specific exposure |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5322 for the corresponding offspring of the topic. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5323 |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5324 Optional FOLLOWERS arguments dictate exposure for succeeding siblings." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5325 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5326 (interactive "xExposure spec: ") |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5327 (let ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5328 (depth (allout-current-depth)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5329 max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5330 (cond ((null spec) nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5331 ((symbolp spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5332 (if (eq spec '*) (allout-show-current-subtree)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5333 (if (eq spec '+) (allout-show-current-branches)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5334 (if (eq spec '-) (allout-show-current-entry))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5335 ((numberp spec) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5336 (if (>= 0 spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5337 (save-excursion (allout-hide-current-subtree t) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5338 (end-of-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5339 (if (or (not max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5340 (> (point) max-pos)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5341 (setq max-pos (point))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5342 (if (> 0 spec) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5343 (setq spec (* -1 spec))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5344 (if (> spec 0) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5345 (allout-show-children spec))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5346 ((listp spec) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5347 ;(let ((got (allout-old-expose-topic (car spec)))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5348 ; (if (and got (or (not max-pos) (> got max-pos))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5349 ; (setq max-pos got))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5350 (let ((new-depth (+ (allout-current-depth) 1)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5351 got) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5352 (setq max-pos (allout-old-expose-topic (car spec))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5353 (setq spec (cdr spec)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5354 (if (and spec |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5355 (allout-descend-to-depth new-depth) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5356 (not (allout-hidden-p))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5357 (progn (setq got (apply 'allout-old-expose-topic spec)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5358 (if (and got (or (not max-pos) (> got max-pos))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5359 (setq max-pos got))))))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5360 (while (and followers |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5361 (progn (if (and max-pos (< (point) max-pos)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5362 (progn (goto-char max-pos) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5363 (setq max-pos nil))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5364 (end-of-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5365 (allout-next-sibling depth))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5366 (allout-old-expose-topic (car followers)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5367 (setq followers (cdr followers))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5368 max-pos)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5369 ;;;_ > allout-new-exposure '() |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5370 (defmacro allout-new-exposure (&rest spec) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5371 "Literal frontend for `allout-expose-topic', doesn't evaluate arguments. |
48857
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
5372 Some arguments that would need to be quoted in `allout-expose-topic' |
8641226163f1
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
48856
diff
changeset
|
5373 need not be quoted in `allout-new-exposure'. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5374 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5375 Cursor is left at start position. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5376 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5377 Use this instead of obsolete `allout-exposure'. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5378 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5379 Examples: |
61969
38ca28ee68d6
(allout-exposure): Remove macro and obsolete declaration.
Nick Roberts <nickrob@snap.net.nz>
parents:
59996
diff
changeset
|
5380 \(allout-new-exposure (-1 () () () 1) 0) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5381 Close current topic at current level so only the immediate |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5382 subtopics are shown, except also show the children of the |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5383 third subtopic; and close the next topic at the current level. |
61969
38ca28ee68d6
(allout-exposure): Remove macro and obsolete declaration.
Nick Roberts <nickrob@snap.net.nz>
parents:
59996
diff
changeset
|
5384 \(allout-new-exposure : -1 0) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5385 Close all topics at current level to expose only their |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5386 immediate children, except for the last topic at the current |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
5387 level, in which even its immediate children are hidden. |
61969
38ca28ee68d6
(allout-exposure): Remove macro and obsolete declaration.
Nick Roberts <nickrob@snap.net.nz>
parents:
59996
diff
changeset
|
5388 \(allout-new-exposure -2 : -1 *) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5389 Expose children and grandchildren of first topic at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5390 level, and expose children of subsequent topics at current |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5391 level *except* for the last, which should be opened completely." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5392 (list 'save-excursion |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5393 '(if (not (or (allout-goto-prefix-doublechecked) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5394 (allout-next-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5395 (error "allout-new-exposure: Can't find any outline topics")) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5396 (list 'allout-expose-topic (list 'quote spec)))) |
29490 | 5397 |
79939 | 5398 ;;;_ #7 Systematic outline presentation -- copying, printing, flattening |
29490 | 5399 |
5400 ;;;_ - Mapping and processing of topics | |
5401 ;;;_ ( See also Subtree Charting, in Navigation code.) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5402 ;;;_ > allout-stringify-flat-index (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5403 (defun allout-stringify-flat-index (flat-index &optional context) |
29490 | 5404 "Convert list representing section/subsection/... to document string. |
5405 | |
5406 Optional arg CONTEXT indicates interior levels to include." | |
5407 (let ((delim ".") | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
5408 result |
29490 | 5409 numstr |
5410 (context-depth (or (and context 2) 1))) | |
5411 ;; Take care of the explicit context: | |
5412 (while (> context-depth 0) | |
5413 (setq numstr (int-to-string (car flat-index)) | |
5414 flat-index (cdr flat-index) | |
5415 result (if flat-index | |
5416 (cons delim (cons numstr result)) | |
5417 (cons numstr result)) | |
5418 context-depth (if flat-index (1- context-depth) 0))) | |
5419 (setq delim " ") | |
5420 ;; Take care of the indentation: | |
5421 (if flat-index | |
5422 (progn | |
5423 (while flat-index | |
5424 (setq result | |
5425 (cons delim | |
5426 (cons (make-string | |
5427 (1+ (truncate (if (zerop (car flat-index)) | |
5428 1 | |
5429 (log10 (car flat-index))))) | |
5430 ? ) | |
5431 result))) | |
5432 (setq flat-index (cdr flat-index))) | |
5433 ;; Dispose of single extra delim: | |
5434 (setq result (cdr result)))) | |
5435 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5436 ;;;_ > allout-stringify-flat-index-plain (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5437 (defun allout-stringify-flat-index-plain (flat-index) |
29490 | 5438 "Convert list representing section/subsection/... to document string." |
5439 (let ((delim ".") | |
5440 result) | |
5441 (while flat-index | |
5442 (setq result (cons (int-to-string (car flat-index)) | |
5443 (if result | |
5444 (cons delim result)))) | |
5445 (setq flat-index (cdr flat-index))) | |
5446 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5447 ;;;_ > allout-stringify-flat-index-indented (flat-index) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5448 (defun allout-stringify-flat-index-indented (flat-index) |
29490 | 5449 "Convert list representing section/subsection/... to document string." |
5450 (let ((delim ".") | |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
5451 result |
29490 | 5452 numstr) |
5453 ;; Take care of the explicit context: | |
5454 (setq numstr (int-to-string (car flat-index)) | |
5455 flat-index (cdr flat-index) | |
5456 result (if flat-index | |
5457 (cons delim (cons numstr result)) | |
5458 (cons numstr result))) | |
5459 (setq delim " ") | |
5460 ;; Take care of the indentation: | |
5461 (if flat-index | |
5462 (progn | |
5463 (while flat-index | |
5464 (setq result | |
5465 (cons delim | |
5466 (cons (make-string | |
5467 (1+ (truncate (if (zerop (car flat-index)) | |
5468 1 | |
5469 (log10 (car flat-index))))) | |
5470 ? ) | |
5471 result))) | |
5472 (setq flat-index (cdr flat-index))) | |
5473 ;; Dispose of single extra delim: | |
5474 (setq result (cdr result)))) | |
5475 (apply 'concat result))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5476 ;;;_ > allout-listify-exposed (&optional start end format) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5477 (defun allout-listify-exposed (&optional start end format) |
29490 | 5478 |
5479 "Produce a list representing exposed topics in current region. | |
5480 | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5481 This list can then be used by `allout-process-exposed' to manipulate |
29490 | 5482 the subject region. |
5483 | |
5484 Optional START and END indicate bounds of region. | |
5485 | |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
5486 Optional arg, FORMAT, designates an alternate presentation form for |
29490 | 5487 the prefix: |
5488 | |
79939 | 5489 list -- Present prefix as numeric section.subsection..., starting with |
29490 | 5490 section indicated by the list, innermost nesting first. |
79939 | 5491 `indent' (symbol) -- Convert header prefixes to all white space, |
29490 | 5492 except for distinctive bullets. |
5493 | |
5494 The elements of the list produced are lists that represents a topic | |
5495 header and body. The elements of that list are: | |
5496 | |
5497 - a number representing the depth of the topic, | |
5498 - a string representing the header-prefix, including trailing whitespace and | |
5499 bullet. | |
5500 - a string representing the bullet character, | |
5501 - and a series of strings, each containing one line of the exposed | |
5502 portion of the topic entry." | |
5503 | |
5504 (interactive "r") | |
5505 (save-excursion | |
5506 (let* | |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5507 ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5508 ;; state vars: |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5509 strings prefix result depth new-depth out gone-out bullet beg |
29490 | 5510 next done) |
5511 | |
5512 (goto-char start) | |
5513 (beginning-of-line) | |
5514 ;; Goto initial topic, and register preceeding stuff, if any: | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5515 (if (> (allout-goto-prefix-doublechecked) start) |
79939 | 5516 ;; First topic follows beginning point -- register preliminary stuff: |
29490 | 5517 (setq result (list (list 0 "" nil |
5518 (buffer-substring start (1- (point))))))) | |
5519 (while (and (not done) | |
5520 (not (eobp)) ; Loop until we've covered the region. | |
5521 (not (> (point) end))) | |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5522 (setq depth allout-recent-depth ; Current topics depth, |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5523 bullet (allout-recent-bullet) ; ... bullet, |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5524 prefix (allout-recent-prefix) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5525 beg (progn (allout-end-of-prefix t) (point))) ; and beginning. |
29490 | 5526 (setq done ; The boundary for the current topic: |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5527 (not (allout-next-visible-heading 1))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5528 (setq new-depth allout-recent-depth) |
29490 | 5529 (setq gone-out out |
5530 out (< new-depth depth)) | |
5531 (beginning-of-line) | |
5532 (setq next (point)) | |
5533 (goto-char beg) | |
5534 (setq strings nil) | |
5535 (while (> next (point)) ; Get all the exposed text in | |
5536 (setq strings | |
5537 (cons (buffer-substring | |
5538 beg | |
5539 ;To hidden text or end of line: | |
5540 (progn | |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5541 (end-of-line) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5542 (allout-back-to-visible-text))) |
29490 | 5543 strings)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5544 (when (< (point) next) ; Resume from after hid text, if any. |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
5545 (line-move 1) |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
5546 (beginning-of-line)) |
29490 | 5547 (setq beg (point))) |
5548 ;; Accumulate list for this topic: | |
5549 (setq strings (nreverse strings)) | |
5550 (setq result | |
5551 (cons | |
5552 (if format | |
5553 (let ((special (if (string-match | |
5554 (regexp-quote bullet) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5555 allout-distinctive-bullets-string) |
29490 | 5556 bullet))) |
5557 (cond ((listp format) | |
5558 (list depth | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5559 (if allout-abbreviate-flattened-numbering |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5560 (allout-stringify-flat-index format |
29490 | 5561 gone-out) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5562 (allout-stringify-flat-index-plain |
29490 | 5563 format)) |
5564 strings | |
5565 special)) | |
5566 ((eq format 'indent) | |
5567 (if special | |
5568 (list depth | |
5569 (concat (make-string (1+ depth) ? ) | |
5570 (substring prefix -1)) | |
5571 strings) | |
5572 (list depth | |
5573 (make-string depth ? ) | |
5574 strings))) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5575 (t (error "allout-listify-exposed: %s %s" |
29490 | 5576 "invalid format" format)))) |
5577 (list depth prefix strings)) | |
5578 result)) | |
5579 ;; Reasses format, if any: | |
5580 (if (and format (listp format)) | |
5581 (cond ((= new-depth depth) | |
5582 (setq format (cons (1+ (car format)) | |
5583 (cdr format)))) | |
79939 | 5584 ((> new-depth depth) ; descending -- assume by 1: |
29490 | 5585 (setq format (cons 1 format))) |
5586 (t | |
5587 ; Pop the residue: | |
5588 (while (< new-depth depth) | |
5589 (setq format (cdr format)) | |
5590 (setq depth (1- depth))) | |
5591 ; And increment the current one: | |
5592 (setq format | |
5593 (cons (1+ (or (car format) | |
5594 -1)) | |
5595 (cdr format))))))) | |
5596 ;; Put the list with first at front, to last at back: | |
5597 (nreverse result)))) | |
87407
25c8924964c6
(allout-region-active-p): Renamed from my-region-active-p. Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
87160
diff
changeset
|
5598 ;;;_ > allout-region-active-p () |
25c8924964c6
(allout-region-active-p): Renamed from my-region-active-p. Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
87160
diff
changeset
|
5599 (defmacro allout-region-active-p () |
87943
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
5600 (cond ((fboundp 'use-region-p) '(use-region-p)) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
5601 ((fboundp 'region-active-p) '(region-active-p)) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
5602 (t 'mark-active))) |
4fb8430d030b
(allout-keybindings-list): In initial setting, express
Ken Manheimer <ken.manheimer@gmail.com>
parents:
87649
diff
changeset
|
5603 ;;_ > allout-process-exposed (&optional func from to frombuf |
29490 | 5604 ;;; tobuf format) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5605 (defun allout-process-exposed (&optional func from to frombuf tobuf |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5606 format start-num) |
29490 | 5607 "Map function on exposed parts of current topic; results to another buffer. |
5608 | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5609 All args are options; default values itemized below. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5610 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5611 Apply FUNCTION to exposed portions FROM position TO position in buffer |
29490 | 5612 FROMBUF to buffer TOBUF. Sixth optional arg, FORMAT, designates an |
5613 alternate presentation form: | |
5614 | |
79939 | 5615 `flat' -- Present prefix as numeric section.subsection..., starting with |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
5616 section indicated by the START-NUM, innermost nesting first. |
79939 | 5617 X`flat-indented' -- Prefix is like `flat' for first topic at each |
29490 | 5618 X level, but subsequent topics have only leaf topic |
5619 X number, padded with blanks to line up with first. | |
79939 | 5620 `indent' (symbol) -- Convert header prefixes to all white space, |
29490 | 5621 except for distinctive bullets. |
5622 | |
5623 Defaults: | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5624 FUNCTION: `allout-insert-listified' |
29490 | 5625 FROM: region start, if region active, else start of buffer |
5626 TO: region end, if region active, else end of buffer | |
5627 FROMBUF: current buffer | |
5628 TOBUF: buffer name derived: \"*current-buffer-name exposed*\" | |
5629 FORMAT: nil" | |
5630 | |
5631 ; Resolve arguments, | |
5632 ; defaulting if necessary: | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5633 (if (not func) (setq func 'allout-insert-listified)) |
29490 | 5634 (if (not (and from to)) |
87407
25c8924964c6
(allout-region-active-p): Renamed from my-region-active-p. Use `use-region-p'.
Richard M. Stallman <rms@gnu.org>
parents:
87160
diff
changeset
|
5635 (if (allout-region-active-p) |
29490 | 5636 (setq from (region-beginning) to (region-end)) |
5637 (setq from (point-min) to (point-max)))) | |
5638 (if frombuf | |
5639 (if (not (bufferp frombuf)) | |
79939 | 5640 ;; Specified but not a buffer -- get it: |
29490 | 5641 (let ((got (get-buffer frombuf))) |
5642 (if (not got) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5643 (error (concat "allout-process-exposed: source buffer " |
29490 | 5644 frombuf |
5645 " not found.")) | |
5646 (setq frombuf got)))) | |
79939 | 5647 ;; not specified -- default it: |
29490 | 5648 (setq frombuf (current-buffer))) |
5649 (if tobuf | |
5650 (if (not (bufferp tobuf)) | |
5651 (setq tobuf (get-buffer-create tobuf))) | |
79939 | 5652 ;; not specified -- default it: |
29490 | 5653 (setq tobuf (concat "*" (buffer-name frombuf) " exposed*"))) |
5654 (if (listp format) | |
5655 (nreverse format)) | |
5656 | |
5657 (let* ((listified | |
5658 (progn (set-buffer frombuf) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5659 (allout-listify-exposed from to format)))) |
29490 | 5660 (set-buffer tobuf) |
84855
5b7295004fd1
(produce-allout-mode-map, allout-process-exposed):
Juanma Barranquero <lekktu@gmail.com>
parents:
78492
diff
changeset
|
5661 (mapc func listified) |
29490 | 5662 (pop-to-buffer tobuf))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5663 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5664 ;;;_ - Copy exposed |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5665 ;;;_ > allout-insert-listified (listified) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5666 (defun allout-insert-listified (listified) |
29490 | 5667 "Insert contents of listified outline portion in current buffer. |
5668 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5669 LISTIFIED is a list representing each topic header and body: |
29490 | 5670 |
5671 \`(depth prefix text)' | |
5672 | |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5673 or \`(depth prefix text bullet-plus)' |
29490 | 5674 |
5675 If `bullet-plus' is specified, it is inserted just after the entire prefix." | |
5676 (setq listified (cdr listified)) | |
5677 (let ((prefix (prog1 | |
5678 (car listified) | |
5679 (setq listified (cdr listified)))) | |
5680 (text (prog1 | |
5681 (car listified) | |
5682 (setq listified (cdr listified)))) | |
5683 (bullet-plus (car listified))) | |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5684 (insert prefix) |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5685 (if bullet-plus (insert (concat " " bullet-plus))) |
29490 | 5686 (while text |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5687 (insert (car text)) |
29490 | 5688 (if (setq text (cdr text)) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
5689 (insert "\n"))) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5690 (insert "\n"))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5691 ;;;_ > allout-copy-exposed-to-buffer (&optional arg tobuf format) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5692 (defun allout-copy-exposed-to-buffer (&optional arg tobuf format) |
29490 | 5693 "Duplicate exposed portions of current outline to another buffer. |
5694 | |
5695 Other buffer has current buffers name with \" exposed\" appended to it. | |
5696 | |
5697 With repeat count, copy the exposed parts of only the current topic. | |
5698 | |
5699 Optional second arg TOBUF is target buffer name. | |
5700 | |
5701 Optional third arg FORMAT, if non-nil, symbolically designates an | |
5702 alternate presentation format for the outline: | |
5703 | |
5704 `flat' - Convert topic header prefixes to numeric | |
5705 section.subsection... identifiers. | |
5706 `indent' - Convert header prefixes to all white space, except for | |
5707 distinctive bullets. | |
5708 `indent-flat' - The best of both - only the first of each level has | |
5709 the full path, the rest have only the section number | |
5710 of the leaf, preceded by the right amount of indentation." | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5711 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5712 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5713 (if (not tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5714 (setq tobuf (get-buffer-create (concat "*" (buffer-name) " exposed*")))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5715 (let* ((start-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5716 (beg (if arg (allout-back-to-current-heading) (point-min))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5717 (end (if arg (allout-end-of-current-subtree) (point-max))) |
29490 | 5718 (buf (current-buffer)) |
5719 (start-list ())) | |
5720 (if (eq format 'flat) | |
5721 (setq format (if arg (save-excursion | |
5722 (goto-char beg) | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5723 (allout-topic-flat-index)) |
29490 | 5724 '(1)))) |
105994
009383a57ce8
* x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105372
diff
changeset
|
5725 (with-current-buffer tobuf (erase-buffer)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5726 (allout-process-exposed 'allout-insert-listified |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5727 beg |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5728 end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5729 (current-buffer) |
29490 | 5730 tobuf |
5731 format start-list) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5732 (goto-char (point-min)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5733 (pop-to-buffer buf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5734 (goto-char start-pt))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5735 ;;;_ > allout-flatten-exposed-to-buffer (&optional arg tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5736 (defun allout-flatten-exposed-to-buffer (&optional arg tobuf) |
29490 | 5737 "Present numeric outline of outline's exposed portions in another buffer. |
5738 | |
79939 | 5739 The resulting outline is not compatible with outline mode -- use |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5740 `allout-copy-exposed-to-buffer' if you want that. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5741 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5742 Use `allout-indented-exposed-to-buffer' for indented presentation. |
29490 | 5743 |
5744 With repeat count, copy the exposed portions of only current topic. | |
5745 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5746 Other buffer has current buffer's name with \" exposed\" appended to |
29490 | 5747 it, unless optional second arg TOBUF is specified, in which case it is |
5748 used verbatim." | |
5749 (interactive "P") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5750 (allout-copy-exposed-to-buffer arg tobuf 'flat)) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5751 ;;;_ > allout-indented-exposed-to-buffer (&optional arg tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5752 (defun allout-indented-exposed-to-buffer (&optional arg tobuf) |
29490 | 5753 "Present indented outline of outline's exposed portions in another buffer. |
5754 | |
79939 | 5755 The resulting outline is not compatible with outline mode -- use |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5756 `allout-copy-exposed-to-buffer' if you want that. |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5757 |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5758 Use `allout-flatten-exposed-to-buffer' for numeric sectional presentation. |
29490 | 5759 |
5760 With repeat count, copy the exposed portions of only current topic. | |
5761 | |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5762 Other buffer has current buffer's name with \" exposed\" appended to |
29490 | 5763 it, unless optional second arg TOBUF is specified, in which case it is |
5764 used verbatim." | |
5765 (interactive "P") | |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5766 (allout-copy-exposed-to-buffer arg tobuf 'indent)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5767 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5768 ;;;_ - LaTeX formatting |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5769 ;;;_ > allout-latex-verb-quote (string &optional flow) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5770 (defun allout-latex-verb-quote (string &optional flow) |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5771 "Return copy of STRING for literal reproduction across LaTeX processing. |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5772 Expresses the original characters (including carriage returns) of the |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5773 string across LaTeX processing." |
29490 | 5774 (mapconcat (function |
5775 (lambda (char) | |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5776 (cond ((memq char '(?\\ ?$ ?% ?# ?& ?{ ?} ?_ ?^ ?- ?*)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5777 (concat "\\char" (number-to-string char) "{}")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5778 ((= char ?\n) "\\\\") |
29490 | 5779 (t (char-to-string char))))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5780 string |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5781 "")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5782 ;;;_ > allout-latex-verbatim-quote-curr-line () |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5783 (defun allout-latex-verbatim-quote-curr-line () |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5784 "Express line for exact (literal) representation across LaTeX processing. |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5785 |
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
5786 Adjust line contents so it is unaltered (from the original line) |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5787 across LaTeX processing, within the context of a `verbatim' |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5788 environment. Leaves point at the end of the line." |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5789 (let ((inhibit-field-text-motion t)) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5790 (beginning-of-line) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
5791 (let ((beg (point)) |
111537
b8d806986840
Restore clobbered allout.el changes.
Glenn Morris <rgm@gnu.org>
parents:
111535
diff
changeset
|
5792 (end (point-at-eol))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5793 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5794 (while (re-search-forward "\\\\" |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5795 ;;"\\\\\\|\\{\\|\\}\\|\\_\\|\\$\\|\\\"\\|\\&\\|\\^\\|\\-\\|\\*\\|#" |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5796 end ; bounded by end-of-line |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5797 1) ; no matches, move to end & return nil |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5798 (goto-char (match-beginning 2)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5799 (insert "\\") |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5800 (setq end (1+ end)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
5801 (goto-char (1+ (match-end 2)))))))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5802 ;;;_ > allout-insert-latex-header (buffer) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5803 (defun allout-insert-latex-header (buffer) |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5804 "Insert initial LaTeX commands at point in BUFFER." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5805 ;; Much of this is being derived from the stuff in appendix of E in |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5806 ;; the TeXBook, pg 421. |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5807 (set-buffer buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5808 (let ((doc-style (format "\n\\documentstyle{%s}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5809 "report")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5810 (page-numbering (if allout-number-pages |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5811 "\\pagestyle{empty}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5812 "")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5813 (titlecmd (format "\\newcommand{\\titlecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5814 allout-title-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5815 (labelcmd (format "\\newcommand{\\labelcmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5816 allout-label-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5817 (headlinecmd (format "\\newcommand{\\headlinecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5818 allout-head-line-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5819 (bodylinecmd (format "\\newcommand{\\bodylinecmd}[1]{{%s #1}}\n" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5820 allout-body-line-style)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5821 (setlength (format "%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5822 "\\newlength{\\stepsize}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5823 "\\setlength{\\stepsize}{" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5824 allout-indent |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5825 "}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5826 (oneheadline (format "%s%s%s%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5827 "\\newcommand{\\OneHeadLine}[3]{%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5828 "\\noindent%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5829 "\\hspace*{#2\\stepsize}%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5830 "\\labelcmd{#1}\\hspace*{.2cm}" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5831 "\\headlinecmd{#3}\\\\[" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5832 allout-line-skip |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5833 "]\n}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5834 (onebodyline (format "%s%s%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5835 "\\newcommand{\\OneBodyLine}[2]{%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5836 "\\noindent%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5837 "\\hspace*{#1\\stepsize}%\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5838 "\\bodylinecmd{#2}\\\\[" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5839 allout-line-skip |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5840 "]\n}\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5841 (begindoc "\\begin{document}\n\\begin{center}\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5842 (title (format "%s%s%s%s" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5843 "\\titlecmd{" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5844 (allout-latex-verb-quote (if allout-title |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
5845 (condition-case nil |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5846 (eval allout-title) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5847 (error "<unnamed buffer>")) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5848 "Unnamed Outline")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5849 "}\n" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5850 "\\end{center}\n\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5851 (hsize "\\hsize = 7.5 true in\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5852 (hoffset "\\hoffset = -1.5 true in\n") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5853 (vspace "\\vspace{.1cm}\n\n")) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5854 (insert (concat doc-style |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5855 page-numbering |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5856 titlecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5857 labelcmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5858 headlinecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5859 bodylinecmd |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5860 setlength |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5861 oneheadline |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5862 onebodyline |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5863 begindoc |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5864 title |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5865 hsize |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5866 hoffset |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5867 vspace) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5868 ))) |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5869 ;;;_ > allout-insert-latex-trailer (buffer) |
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5870 (defun allout-insert-latex-trailer (buffer) |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5871 "Insert concluding LaTeX commands at point in BUFFER." |
55717
50b099e608af
(allout-chart-subtree, allout-rebullet-topic-grunt): Don't mention in the
Juanma Barranquero <lekktu@gmail.com>
parents:
54952
diff
changeset
|
5872 (set-buffer buffer) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5873 (insert "\n\\end{document}\n")) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5874 ;;;_ > allout-latexify-one-item (depth prefix bullet text) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5875 (defun allout-latexify-one-item (depth prefix bullet text) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5876 "Insert LaTeX commands for formatting one outline item. |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5877 |
29490 | 5878 Args are the topics numeric DEPTH, the header PREFIX lead string, the |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5879 BULLET string, and a list of TEXT strings for the body." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5880 (let* ((head-line (if text (car text))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5881 (body-lines (cdr text)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5882 (curr-line) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5883 body-content bop) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5884 ; Do the head line: |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48859
diff
changeset
|
5885 (insert (concat "\\OneHeadLine{\\verb\1 " |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5886 (allout-latex-verb-quote bullet) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5887 "\1}{" |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5888 depth |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5889 "}{\\verb\1 " |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5890 (if head-line |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5891 (allout-latex-verb-quote head-line) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5892 "") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5893 "\1}\n")) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5894 (if (not body-lines) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5895 nil |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5896 ;;(insert "\\beginlines\n") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5897 (insert "\\begin{verbatim}\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5898 (while body-lines |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5899 (setq curr-line (car body-lines)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5900 (if (and (not body-content) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5901 (not (string-match "^\\s-*$" curr-line))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5902 (setq body-content t)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5903 ; Mangle any occurrences of |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5904 ; "\end{verbatim}" in text, |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5905 ; it's special: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5906 (if (and body-content |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5907 (setq bop (string-match "\\end{verbatim}" curr-line))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5908 (setq curr-line (concat (substring curr-line 0 bop) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5909 ">" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5910 (substring curr-line bop)))) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5911 ;;(insert "|" (car body-lines) "|") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5912 (insert curr-line) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5913 (allout-latex-verbatim-quote-curr-line) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5914 (insert "\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5915 (setq body-lines (cdr body-lines))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5916 (if body-content |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5917 (setq body-content nil) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5918 (forward-char -1) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5919 (insert "\\ ") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5920 (forward-char 1)) |
41571
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5921 ;;(insert "\\endlines\n") |
2902b21d2034
(outline-version, outline-open-topic)
Pavel Janík <Pavel@Janik.cz>
parents:
38431
diff
changeset
|
5922 (insert "\\end{verbatim}\n") |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5923 ))) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5924 ;;;_ > allout-latexify-exposed (arg &optional tobuf) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5925 (defun allout-latexify-exposed (arg &optional tobuf) |
64283
d57ad48e7901
(my-mark-marker, allout-isearch-prior-pos, allout-unprotected,
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
5926 "Format current topics exposed portions to TOBUF for LaTeX processing. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5927 TOBUF defaults to a buffer named the same as the current buffer, but |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
5928 with \"*\" prepended and \" latex-formed*\" appended. |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5929 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5930 With repeat count, copy the exposed portions of entire buffer." |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5931 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5932 (interactive "P") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5933 (if (not tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5934 (setq tobuf |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5935 (get-buffer-create (concat "*" (buffer-name) " latexified*")))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5936 (let* ((start-pt (point)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5937 (beg (if arg (point-min) (allout-back-to-current-heading))) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5938 (end (if arg (point-max) (allout-end-of-current-subtree))) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5939 (buf (current-buffer))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5940 (set-buffer tobuf) |
3430 | 5941 (erase-buffer) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5942 (allout-insert-latex-header tobuf) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5943 (goto-char (point-max)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5944 (allout-process-exposed 'allout-latexify-one-item |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5945 beg |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5946 end |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5947 buf |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5948 tobuf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5949 (goto-char (point-max)) |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
5950 (allout-insert-latex-trailer tobuf) |
3430 | 5951 (goto-char (point-min)) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5952 (pop-to-buffer buf) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5953 (goto-char start-pt))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
5954 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5955 ;;;_ #8 Encryption |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5956 ;;;_ > allout-toggle-current-subtree-encryption (&optional keymode-cue) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5957 (defun allout-toggle-current-subtree-encryption (&optional keymode-cue) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5958 "Encrypt clear or decrypt encoded topic text. |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5959 |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5960 Allout uses emacs 'epg' libary to perform encryption. Symmetric |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5961 and keypair encryption are supported. All encryption is ascii |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5962 armored. |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5963 |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5964 Entry encryption defaults to symmetric key mode unless keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5965 recipients are associated with the file \(see |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5966 `epa-file-encrypt-to') or the function is invoked with a |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5967 \(KEYMODE-CUE) universal argument greater than 1. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5968 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5969 When encrypting, KEYMODE-CUE universal argument greater than 1 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5970 causes prompting for recipients for public-key keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5971 encryption. Selecting no recipients results in symmetric key |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5972 encryption. |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5973 |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5974 Further, encrypting with a KEYMODE-CUE universal argument greater |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5975 than 4 - eg, preceded by a doubled Ctrl-U - causes association of |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5976 the specified recipients with the file, replacing those currently |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5977 associated with it. This can be used to deassociate any |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5978 recipients with the file, by selecting no recipients in the |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5979 dialog. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
5980 |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5981 Encrypted topic's bullets are set to a `~' to signal that the |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5982 contents of the topic (body and subtopics, but not heading) is |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5983 pending encryption or encrypted. `*' asterisk immediately after |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5984 the bullet signals that the body is encrypted, its absence means |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5985 the topic is meant to be encrypted but is not currently. When a |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5986 file with topics pending encryption is saved, topics pending |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5987 encryption are encrypted. See allout-encrypt-unencrypted-on-saves |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5988 for auto-encryption specifics. |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
5989 |
74987
3a115c11d329
(allout-encrypt-string): Handle symmetric-key passphrase caching but leave
Eli Zaretskii <eliz@gnu.org>
parents:
74864
diff
changeset
|
5990 \*NOTE WELL* that automatic encryption that happens during saves will |
79939 | 5991 default to symmetric encryption -- you must deliberately (re)encrypt key-pair |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
5992 encrypted topics if you want them to continue to use the key-pair cipher. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5993 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
5994 Level-one topics, with prefix consisting solely of an `*' asterisk, cannot be |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
5995 encrypted. If you want to encrypt the contents of a top-level topic, use |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
5996 \\[allout-shift-in] to increase its depth." |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
5997 (interactive "P") |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
5998 (save-excursion |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
5999 (allout-back-to-current-heading) |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6000 (allout-toggle-subtree-encryption keymode-cue))) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6001 ;;;_ > allout-toggle-subtree-encryption (&optional keymode-cue) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6002 (defun allout-toggle-subtree-encryption (&optional keymode-cue) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
6003 "Encrypt clear text or decrypt encoded topic contents (body and subtopics.) |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
6004 |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6005 Entry encryption defaults to symmetric key mode unless keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6006 recipients are associated with the file \(see |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6007 `epa-file-encrypt-to') or the function is invoked with a |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6008 \(KEYMODE-CUE) universal argument greater than 1. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6009 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6010 When encrypting, KEYMODE-CUE universal argument greater than 1 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6011 causes prompting for recipients for public-key keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6012 encryption. Selecting no recipients results in symmetric key |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6013 encryption. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6014 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6015 Further, encrypting with a KEYMODE-CUE universal argument greater |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6016 than 4 - eg, preceded by a doubled Ctrl-U - causes association of |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6017 the specified recipients with the file, replacing those currently |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6018 associated with it. This can be used to deassociate any |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6019 recipients with the file, by selecting no recipients in the |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6020 dialog. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6021 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6022 Encryption and decryption uses the emacs epg library. |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6023 |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6024 Encrypted text will be ascii-armored. |
67262
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
6025 |
c3cfae9a5571
(eval-when-compile): Remove unnecessary load of 'cl. Add fset of
Eli Zaretskii <eliz@gnu.org>
parents:
66319
diff
changeset
|
6026 See `allout-toggle-current-subtree-encryption' for more details." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6027 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6028 (interactive "P") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6029 (save-excursion |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6030 (allout-end-of-prefix t) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6031 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6032 (if (= allout-recent-depth 1) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6033 (error (concat "Cannot encrypt or decrypt level 1 topics -" |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6034 " shift it in to make it encryptable"))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6035 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6036 (let* ((allout-buffer (current-buffer)) |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6037 ;; Assess location: |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6038 (bullet-pos allout-recent-prefix-beginning) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6039 (after-bullet-pos (point)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6040 (was-encrypted |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6041 (progn (if (= (point-max) after-bullet-pos) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6042 (error "no body to encrypt")) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6043 (allout-encrypted-topic-p))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6044 (was-collapsed (if (not (search-forward "\n" nil t)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6045 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6046 (backward-char 1) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6047 (allout-hidden-p))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6048 (subtree-beg (1+ (point))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6049 (subtree-end (allout-end-of-subtree)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6050 (subject-text (buffer-substring-no-properties subtree-beg |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6051 subtree-end)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6052 (subtree-end-char (char-after (1- subtree-end))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6053 (subtree-trailing-char (char-after subtree-end)) |
79939 | 6054 ;; kluge -- result-text needs to be nil, but we also want to |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6055 ;; check for the error condition |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6056 (result-text (if (or (string= "" subject-text) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6057 (string= "\n" subject-text)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6058 (error "No topic contents to %scrypt" |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6059 (if was-encrypted "de" "en")) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6060 nil)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6061 ;; Assess key parameters: |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6062 (was-coding-system buffer-file-coding-system)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6063 |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6064 (when (not was-encrypted) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6065 ;; ensure that non-ascii chars pending encryption are noticed before |
95241 | 6066 ;; they're encrypted, so the coding system is set to accommodate |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6067 ;; them. |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6068 (setq buffer-file-coding-system |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6069 (allout-select-safe-coding-system subtree-beg subtree-end)) |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6070 ;; if the coding system for the text being encrypted is different |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6071 ;; than that prevailing, then there a real risk that the coding |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6072 ;; system can't be noticed by emacs when the file is visited. to |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6073 ;; mitigate that, offer to preserve the coding system using a file |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6074 ;; local variable. |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6075 (if (and (not (equal buffer-file-coding-system |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6076 was-coding-system)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6077 (yes-or-no-p |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6078 (format (concat "Register coding system %s as file local" |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6079 " var? Necessary when only encrypted text" |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6080 " is in that coding system. ") |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6081 buffer-file-coding-system))) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6082 (allout-adjust-file-variable "buffer-file-coding-system" |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6083 buffer-file-coding-system))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6084 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6085 (setq result-text |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6086 (allout-encrypt-string subject-text was-encrypted |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6087 (current-buffer) keymode-cue)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6088 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6089 ;; Replace the subtree with the processed product. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6090 (allout-unprotected |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6091 (progn |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6092 (set-buffer allout-buffer) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6093 (delete-region subtree-beg subtree-end) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6094 (insert result-text) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6095 (if was-collapsed |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6096 (allout-flag-region (1- subtree-beg) (point) t)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6097 ;; adjust trailing-blank-lines to preserve topic spacing: |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6098 (if (not was-encrypted) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6099 (if (and (= subtree-end-char ?\n) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6100 (= subtree-trailing-char ?\n)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6101 (insert subtree-trailing-char))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6102 ;; Ensure that the item has an encrypted-entry bullet: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6103 (if (not (string= (buffer-substring-no-properties |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6104 (1- after-bullet-pos) after-bullet-pos) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6105 allout-topic-encryption-bullet)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6106 (progn (goto-char (1- after-bullet-pos)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6107 (delete-char 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6108 (insert allout-topic-encryption-bullet))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6109 (if was-encrypted |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6110 ;; Remove the is-encrypted bullet qualifier: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6111 (progn (goto-char after-bullet-pos) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6112 (delete-char 1)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6113 ;; Add the is-encrypted bullet qualifier: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6114 (goto-char after-bullet-pos) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6115 (insert "*")))) |
73003
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
6116 (run-hook-with-args 'allout-structure-added-hook |
ec72ab6f5541
* allout.el (allout-unprotected): Let inhibit-read-only only when
Chong Yidong <cyd@stupidchicken.com>
parents:
72917
diff
changeset
|
6117 bullet-pos subtree-end)))) |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6118 ;;;_ > allout-encrypt-string (text decrypt allout-buffer keymode-cue |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6119 ;;; &optional rejected) |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6120 (defun allout-encrypt-string (text decrypt allout-buffer keymode-cue |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6121 &optional rejected) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6122 "Encrypt or decrypt message TEXT. |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6123 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6124 Returns the resulting string, or nil if the transformation fails. |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6125 |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6126 If DECRYPT is true (default false), then decrypt instead of encrypt. |
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6127 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6128 ALLOUT-BUFFER identifies the buffer containing the text. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6129 |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6130 Entry encryption defaults to symmetric key mode unless keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6131 recipients are associated with the file \(see |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6132 `epa-file-encrypt-to') or the function is invoked with a |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6133 \(KEYMODE-CUE) universal argument greater than 1. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6134 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6135 When encrypting, KEYMODE-CUE universal argument greater than 1 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6136 causes prompting for recipients for public-key keypair |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6137 encryption. Selecting no recipients results in symmetric key |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6138 encryption. |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6139 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6140 Further, encrypting with a KEYMODE-CUE universal argument greater |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6141 than 4 - eg, preceded by a doubled Ctrl-U - causes association of |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6142 the specified recipients with the file, replacing those currently |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6143 associated with it. This can be used to deassociate any |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6144 recipients with the file, by selecting no recipients in the |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6145 dialog. |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6146 |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6147 Optional REJECTED is for internal use, to convey the number of |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
6148 rejections due to matches against |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
6149 `allout-encryption-ciphertext-rejection-regexps', as limited by |
111985
a933a2eaafaf
(allout-mode), (allout-encrypt-string): Describe the problem with caching
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111984
diff
changeset
|
6150 `allout-encryption-ciphertext-rejection-ceiling'. |
a933a2eaafaf
(allout-mode), (allout-encrypt-string): Describe the problem with caching
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111984
diff
changeset
|
6151 |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6152 NOTE: A few GnuPG v2 versions improperly preserve incorrect |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6153 symmetric decryption keys, preventing entry of the correct key on |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6154 subsequent decryption attempts until the cache times-out. That |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6155 can take several minutes. \(Decryption of other entries is not |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6156 affected.) Upgrade your EasyPG version, if you can, and you can |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6157 deliberately clear your gpg-agent's cache by sending it a '-HUP' |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6158 signal." |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6159 |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6160 (require 'epg) |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6161 (require 'epa) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6162 |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6163 (let* ((epg-context (let* ((context (epg-make-context nil t))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6164 (epg-context-set-passphrase-callback |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6165 context #'epa-passphrase-callback-function) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6166 context)) |
74011
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6167 (encoding (with-current-buffer allout-buffer |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6168 buffer-file-coding-system)) |
cce8c092567f
(allout-doublecheck-at-and-shallower): Clarify docstring.
Chong Yidong <cyd@stupidchicken.com>
parents:
73763
diff
changeset
|
6169 (multibyte (with-current-buffer allout-buffer |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6170 enable-multibyte-characters)) |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6171 ;; "sanitization" avoids encryption results that are outline structure. |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6172 (sani-regexps 'allout-encryption-plaintext-sanitization-regexps) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6173 (strip-plaintext-regexps (if (not decrypt) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6174 (allout-get-configvar-values |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6175 sani-regexps))) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6176 (rejection-regexps 'allout-encryption-ciphertext-rejection-regexps) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6177 (reject-ciphertext-regexps (if (not decrypt) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6178 (allout-get-configvar-values |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6179 rejection-regexps))) |
72367
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
6180 (rejected (or rejected 0)) |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
6181 (rejections-left (- allout-encryption-ciphertext-rejection-ceiling |
12fa9bdadf0a
(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation.
Eli Zaretskii <eliz@gnu.org>
parents:
72050
diff
changeset
|
6182 rejected)) |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6183 (keypair-mode (cond (decrypt 'decrypting) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6184 ((<= (prefix-numeric-value keymode-cue) 1) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6185 'default) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6186 ((<= (prefix-numeric-value keymode-cue) 4) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6187 'prompt) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6188 ((> (prefix-numeric-value keymode-cue) 4) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6189 'prompt-save))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6190 (keypair-message (concat "Select encryption recipients.\n" |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6191 "Symmetric encryption is done if no" |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6192 " recipients are selected. ")) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6193 (encrypt-to (and (boundp 'epa-file-encrypt-to) epa-file-encrypt-to)) |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6194 recipients |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6195 massaged-text |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6196 result-text |
76204
b5b902938a0a
(allout-encrypt-string): Remove inhibition
Nick Roberts <nickrob@snap.net.nz>
parents:
75347
diff
changeset
|
6197 ) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6198 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6199 ;; Massage the subject text for encoding and filtering. |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6200 (with-temp-buffer |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6201 (insert text) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6202 ;; convey the text characteristics of the original buffer: |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6203 (allout-set-buffer-multibyte multibyte) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6204 (when encoding |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6205 (set-buffer-file-coding-system encoding) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6206 (if (not decrypt) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6207 (encode-coding-region (point-min) (point-max) encoding))) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6208 |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6209 ;; remove sanitization regexps matches before encrypting: |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6210 (when (and strip-plaintext-regexps (not decrypt)) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6211 (dolist (re strip-plaintext-regexps) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6212 (let ((re (if (listp re) (car re) re)) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6213 (replacement (if (listp re) (cadr re) ""))) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6214 (goto-char (point-min)) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6215 (save-match-data |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6216 (while (re-search-forward re nil t) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6217 (replace-match replacement nil nil)))))) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6218 (setq massaged-text (buffer-substring-no-properties (point-min) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6219 (point-max)))) |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6220 ;; determine key mode and, if keypair, recipients: |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6221 (setq recipients |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6222 (case keypair-mode |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6223 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6224 (decrypting nil) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6225 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6226 (default (if encrypt-to (epg-list-keys epg-context encrypt-to))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6227 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6228 ((prompt prompt-save) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6229 (save-window-excursion |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6230 (epa-select-keys epg-context keypair-message))))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6231 |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6232 (setq result-text |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6233 (if decrypt |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6234 (epg-decrypt-string epg-context |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6235 (encode-coding-string massaged-text |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6236 (or encoding 'utf-8))) |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6237 (epg-encrypt-string epg-context |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6238 (encode-coding-string massaged-text |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6239 (or encoding 'utf-8)) |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6240 recipients))) |
111982
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6241 |
f2d8b7a80f04
partial checking with substantial progress towards epg passphrase
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111981
diff
changeset
|
6242 ;; validate result -- non-empty |
111984
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6243 (if (not result-text) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6244 (error "%scryption failed." (if decrypt "De" "En"))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6245 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6246 |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6247 (when (eq keypair-mode 'prompt-save) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6248 ;; set epa-file-encrypt-to in the buffer: |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6249 (setq epa-file-encrypt-to (mapcar (lambda (key) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6250 (epg-user-id-string |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6251 (car (epg-key-user-id-list key)))) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6252 recipients)) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6253 ;; change the file variable: |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6254 (allout-adjust-file-variable "epa-file-encrypt-to" epa-file-encrypt-to)) |
f5276a518424
respect epa-file-encrypt-to, defaulting to it when encrypting, if set, and
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111983
diff
changeset
|
6255 |
111983
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6256 (cond |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6257 ;; Retry (within limit) if ciphertext contains rejections: |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6258 ((and (not decrypt) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6259 ;; Check for disqualification of this ciphertext: |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6260 (let ((regexps reject-ciphertext-regexps) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6261 reject-it) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6262 (while (and regexps (not reject-it)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6263 (setq reject-it (string-match (car regexps) result-text)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6264 (pop regexps)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6265 reject-it)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6266 (setq rejections-left (1- rejections-left)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6267 (if (<= rejections-left 0) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6268 (error (concat "Ciphertext rejected too many times" |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6269 " (%s), per `%s'") |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6270 allout-encryption-ciphertext-rejection-ceiling |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6271 'allout-encryption-ciphertext-rejection-regexps) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6272 ;; try again (gpg-agent may have the key cached): |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6273 (allout-encrypt-string text decrypt allout-buffer keypair-mode |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6274 (1+ rejected)))) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6275 |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6276 ;; Barf if encryption yields extraordinary control chars: |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6277 ((and (not decrypt) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6278 (string-match "[\C-a\C-k\C-o-\C-z\C-@]" |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6279 result-text)) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6280 (error (concat "Encryption produced non-armored text, which" |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6281 "conflicts with allout mode -- reconfigure!"))) |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6282 |
a348c631aeb8
- replace pgg with epg/epa - working version, with no calls to pgg.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111982
diff
changeset
|
6283 (t result-text)))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6284 ;;;_ > allout-encrypted-topic-p () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6285 (defun allout-encrypted-topic-p () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6286 "True if the current topic is encryptable and encrypted." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6287 (save-excursion |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6288 (allout-end-of-prefix t) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6289 (and (string= (buffer-substring-no-properties (1- (point)) (point)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6290 allout-topic-encryption-bullet) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6291 (save-match-data (looking-at "\\*"))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6292 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6293 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6294 ;;;_ > allout-next-topic-pending-encryption (&optional except-mark) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6295 (defun allout-next-topic-pending-encryption (&optional except-mark) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6296 "Return the point of the next topic pending encryption, or nil if none. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6297 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6298 EXCEPT-MARK identifies a point whose containing topics should be excluded |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6299 from encryption. This supports 'except-current mode of |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6300 `allout-encrypt-unencrypted-on-saves'. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6301 |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
6302 Such a topic has the `allout-topic-encryption-bullet' without an |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6303 immediately following '*' that would mark the topic as being encrypted. It |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6304 must also have content." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6305 (let (done got content-beg) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6306 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6307 (while (not done) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6308 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6309 (if (not (re-search-forward |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6310 (format "\\(\\`\\|\n\\)%s *%s[^*]" |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6311 (regexp-quote allout-header-prefix) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6312 (regexp-quote allout-topic-encryption-bullet)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6313 nil t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6314 (setq got nil |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6315 done t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6316 (goto-char (setq got (match-beginning 0))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6317 (if (save-match-data (looking-at "\n")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6318 (forward-char 1)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6319 (setq got (point))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6320 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6321 (cond ((not got) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6322 (setq done t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6323 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6324 ((not (search-forward "\n")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6325 (setq got nil |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6326 done t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6327 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6328 ((eobp) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6329 (setq got nil |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6330 done t)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6331 |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6332 (t |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6333 (setq content-beg (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6334 (backward-char 1) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6335 (allout-end-of-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6336 (if (or (<= (point) content-beg) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6337 (and except-mark |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6338 (<= content-beg except-mark) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6339 (>= (point) except-mark))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6340 ;; Continue looking |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6341 (setq got nil) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6342 ;; Got it! |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6343 (setq done t))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6344 ) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6345 ) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6346 (if got |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6347 (goto-char got)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6348 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6349 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6350 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6351 ;;;_ > allout-encrypt-decrypted (&optional except-mark) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6352 (defun allout-encrypt-decrypted (&optional except-mark) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6353 "Encrypt topics pending encryption except those containing exemption point. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6354 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6355 EXCEPT-MARK identifies a point whose containing topics should be excluded |
79939 | 6356 from encryption. This supports the `except-current' mode of |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6357 `allout-encrypt-unencrypted-on-saves'. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6358 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6359 If a topic that is currently being edited was encrypted, we return a list |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6360 containing the location of the topic and the location of the cursor just |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6361 before the topic was encrypted. This can be used, eg, to decrypt the topic |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6362 and exactly resituate the cursor if this is being done as part of a file |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6363 save. See `allout-encrypt-unencrypted-on-saves' for more info." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6364 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6365 (interactive "p") |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6366 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6367 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6368 (let* ((current-mark (point-marker)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6369 (current-mark-position (marker-position current-mark)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6370 was-modified |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6371 bo-subtree |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6372 editing-topic editing-point) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6373 (goto-char (point-min)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6374 (while (allout-next-topic-pending-encryption except-mark) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6375 (setq was-modified (buffer-modified-p)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6376 (when (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6377 (and (boundp 'allout-encrypt-unencrypted-on-saves) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6378 allout-encrypt-unencrypted-on-saves |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6379 (setq bo-subtree (re-search-forward "$")) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6380 (not (allout-hidden-p)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6381 (>= current-mark (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6382 (allout-end-of-current-subtree) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6383 (<= current-mark (point)))) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6384 (setq editing-topic (point) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6385 ;; we had to wait for this 'til now so prior topics are |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6386 ;; encrypted, any relevant text shifts are in place: |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6387 editing-point (- current-mark-position |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6388 (count-trailing-whitespace-region |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6389 bo-subtree current-mark-position)))) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6390 (allout-toggle-subtree-encryption) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6391 (if (not was-modified) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6392 (set-buffer-modified-p nil)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6393 ) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6394 (if (not was-modified) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6395 (set-buffer-modified-p nil)) |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6396 (if editing-topic (list editing-topic editing-point)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6397 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6398 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6399 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6400 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6401 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6402 ;;;_ #9 miscellaneous |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6403 ;;;_ : Mode: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6404 ;;;_ > outlineify-sticky () |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6405 ;; outlinify-sticky is correct spelling; provide this alias for sticklers: |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6406 ;;;###autoload |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6407 (defalias 'outlinify-sticky 'outlineify-sticky) |
66319
4b40c48a16ad
Increment version number to 2.1, and use a literal
Eli Zaretskii <eliz@gnu.org>
parents:
66230
diff
changeset
|
6408 ;;;###autoload |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6409 (defun outlineify-sticky (&optional arg) |
13964
4de229297f1f
(outline-primary-bullet, outline-numbered-bullet,
Karl Heuer <kwzh@gnu.org>
parents:
13337
diff
changeset
|
6410 "Activate outline mode and establish file var so it is started subsequently. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6411 |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6412 See doc-string for `allout-layout' and `allout-init' for details on |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6413 setup for auto-startup." |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6414 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6415 (interactive "P") |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6416 |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6417 (if (allout-mode-p) (allout-mode)) ; deactivate so we can re-activate... |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6418 (allout-mode) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6419 |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6420 (save-excursion |
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6421 (goto-char (point-min)) |
73660
4a5c7b0a29cc
2006-11-03 Ken Manheimer <ken.manheimer@gmail.com>
Kim F. Storm <storm@cua.dk>
parents:
73315
diff
changeset
|
6422 (if (allout-goto-prefix) |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6423 t |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6424 (allout-open-topic 2) |
79939 | 6425 (insert (concat "Dummy outline topic header -- see" |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6426 "`allout-mode' docstring: `^Hm'.")) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6427 (allout-adjust-file-variable |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
6428 "allout-layout" (or allout-layout '(-1 : 0)))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6429 ;;;_ > allout-file-vars-section-data () |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6430 (defun allout-file-vars-section-data () |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6431 "Return data identifying the file-vars section, or nil if none. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6432 |
79939 | 6433 Returns a list of the form (BEGINNING-POINT PREFIX-STRING SUFFIX-STRING)." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6434 ;; minimally gleaned from emacs 21.4 files.el hack-local-variables function. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6435 (let (beg prefix suffix) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6436 (save-excursion |
3430 | 6437 (goto-char (point-max)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6438 (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6439 (if (let ((case-fold-search t)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6440 (not (search-forward "Local Variables:" nil t))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6441 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6442 (setq beg (- (point) 16)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6443 (setq suffix (buffer-substring-no-properties |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6444 (point) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6445 (progn (if (search-forward "\n" nil t) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6446 (forward-char -1)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6447 (point)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6448 (setq prefix (buffer-substring-no-properties |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6449 (progn (if (search-backward "\n" nil t) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6450 (forward-char 1)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6451 (point)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6452 beg)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6453 (list beg prefix suffix)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6454 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6455 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6456 ) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6457 ;;;_ > allout-adjust-file-variable (varname value) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6458 (defun allout-adjust-file-variable (varname value) |
73763
89b9e8184350
(allout-adjust-file-variable, allout-passphrase-verifier-string,
Juanma Barranquero <lekktu@gmail.com>
parents:
73660
diff
changeset
|
6459 "Adjust the setting of an Emacs file variable named VARNAME to VALUE. |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6460 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6461 This activity is inhibited if either `enable-local-variables' |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6462 `allout-enable-file-variable-adjustment' are nil. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6463 |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6464 When enabled, an entry for the variable is created if not already present, |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6465 or changed if established with a different value. The section for the file |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6466 variables, itself, is created if not already present. When created, the |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
6467 section lines (including the section line) exist as second-level topics in |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6468 a top-level topic at the end of the file. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6469 |
73763
89b9e8184350
(allout-adjust-file-variable, allout-passphrase-verifier-string,
Juanma Barranquero <lekktu@gmail.com>
parents:
73660
diff
changeset
|
6470 `enable-local-variables' must be true for any of this to happen." |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6471 (if (not (and enable-local-variables |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6472 allout-enable-file-variable-adjustment)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6473 nil |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6474 (save-excursion |
72050
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
6475 (let ((inhibit-field-text-motion t) |
d79208e62ea9
(allout-unprotected, allout-e-o-prefix-p)
Eli Zaretskii <eliz@gnu.org>
parents:
71915
diff
changeset
|
6476 (section-data (allout-file-vars-section-data)) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6477 beg prefix suffix) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6478 (if section-data |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6479 (setq beg (car section-data) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6480 prefix (cadr section-data) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6481 suffix (car (cddr section-data))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6482 ;; create the section |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6483 (goto-char (point-max)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6484 (open-line 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6485 (allout-open-topic 0) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6486 (end-of-line) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6487 (insert "Local emacs vars.\n") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6488 (allout-open-topic 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6489 (setq beg (point) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6490 suffix "" |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6491 prefix (buffer-substring-no-properties (progn |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6492 (beginning-of-line) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6493 (point)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6494 beg)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6495 (goto-char beg) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6496 (insert "Local variables:\n") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6497 (allout-open-topic 0) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6498 (insert "End:\n") |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6499 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6500 ;; look for existing entry or create one, leaving point for insertion |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6501 ;; of new value: |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6502 (goto-char beg) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6503 (allout-show-to-offshoot) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6504 (if (search-forward (concat "\n" prefix varname ":") nil t) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6505 (let* ((value-beg (point)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6506 (line-end (progn (if (search-forward "\n" nil t) |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6507 (forward-char -1)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6508 (point))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6509 (value-end (- line-end (length suffix)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6510 (if (> value-end value-beg) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6511 (delete-region value-beg value-end))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6512 (end-of-line) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6513 (open-line 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6514 (forward-line 1) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6515 (insert (concat prefix varname ":"))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6516 (insert (format " %S%s" value suffix)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6517 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6518 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6519 ) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6520 ) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6521 ;;;_ > allout-get-configvar-values (varname) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6522 (defun allout-get-configvar-values (configvar-name) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6523 "Return a list of values of the symbols in list bound to CONFIGVAR-NAME. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6524 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6525 The user is prompted for removal of symbols that are unbound, and they |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6526 otherwise are ignored. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6527 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6528 CONFIGVAR-NAME should be the name of the configuration variable, |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6529 not its value." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6530 |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6531 (let ((configvar-value (symbol-value configvar-name)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6532 got) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6533 (dolist (sym configvar-value) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6534 (if (not (boundp sym)) |
79939 | 6535 (if (yes-or-no-p (format "%s entry `%s' is unbound -- remove it? " |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6536 configvar-name sym)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6537 (delq sym (symbol-value configvar-name))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6538 (push (symbol-value sym) got))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6539 (reverse got))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6540 ;;;_ : Topics: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6541 ;;;_ > allout-mark-topic () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6542 (defun allout-mark-topic () |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6543 "Put the region around topic currently containing point." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6544 (interactive) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6545 (let ((inhibit-field-text-motion t)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6546 (beginning-of-line)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6547 (allout-goto-prefix-doublechecked) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6548 (push-mark (point)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6549 (allout-end-of-current-subtree) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6550 (exchange-point-and-mark)) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6551 ;;;_ : UI: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6552 ;;;_ > solicit-char-in-string (prompt string &optional do-defaulting) |
3430 | 6553 (defun solicit-char-in-string (prompt string &optional do-defaulting) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6554 "Solicit (with first arg PROMPT) choice of a character from string STRING. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6555 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6556 Optional arg DO-DEFAULTING indicates to accept empty input (CR)." |
3430 | 6557 |
6558 (let ((new-prompt prompt) | |
6559 got) | |
6560 | |
6561 (while (not got) | |
6562 (message "%s" new-prompt) | |
6563 | |
6564 ;; We do our own reading here, so we can circumvent, eg, special | |
29490 | 6565 ;; treatment for `?' character. (Oughta use minibuffer keymap instead.) |
3430 | 6566 (setq got |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6567 (char-to-string (let ((cursor-in-echo-area nil)) (read-char)))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6568 |
29490 | 6569 (setq got |
6570 (cond ((string-match (regexp-quote got) string) got) | |
6571 ((and do-defaulting (string= got "\r")) | |
6572 ;; Return empty string to default: | |
6573 "") | |
6574 ((string= got "\C-g") (signal 'quit nil)) | |
6575 (t | |
6576 (setq new-prompt (concat prompt | |
6577 got | |
6578 " ...pick from: " | |
6579 string | |
6580 "")) | |
6581 nil)))) | |
79939 | 6582 ;; got something out of loop -- return it: |
29490 | 6583 got) |
3430 | 6584 ) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6585 ;;;_ : Strings: |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6586 ;;;_ > regexp-sans-escapes (string) |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6587 (defun regexp-sans-escapes (regexp &optional successive-backslashes) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6588 "Return a copy of REGEXP with all character escapes stripped out. |
7416
4996c50431de
(outline-init) New user interface for control of
Richard M. Stallman <rms@gnu.org>
parents:
7218
diff
changeset
|
6589 |
79939 | 6590 Representations of actual backslashes -- '\\\\\\\\' -- are left as a |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6591 single backslash. |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6592 |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6593 Optional arg SUCCESSIVE-BACKSLASHES is used internally for recursion." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6594 |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6595 (if (string= regexp "") |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6596 "" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6597 ;; Set successive-backslashes to number if current char is |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6598 ;; backslash, or else to nil: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6599 (setq successive-backslashes |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6600 (if (= (aref regexp 0) ?\\) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6601 (if successive-backslashes (1+ successive-backslashes) 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6602 nil)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6603 (if (or (not successive-backslashes) (= 2 successive-backslashes)) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6604 ;; Include first char: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6605 (concat (substring regexp 0 1) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6606 (regexp-sans-escapes (substring regexp 1))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6607 ;; Exclude first char, but maintain count: |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6608 (regexp-sans-escapes (substring regexp 1) successive-backslashes)))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6609 ;;;_ > count-trailing-whitespace-region (beg end) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6610 (defun count-trailing-whitespace-region (beg end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6611 "Return number of trailing whitespace chars between BEG and END. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6612 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6613 If BEG is bigger than END we return 0." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6614 (if (> beg end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6615 0 |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6616 (save-match-data |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6617 (save-excursion |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6618 (goto-char beg) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6619 (let ((count 0)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6620 (while (re-search-forward "[ ][ ]*$" end t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6621 (goto-char (1+ (match-beginning 2))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6622 (setq count (1+ count))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6623 count))))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6624 ;;;_ > allout-format-quote (string) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6625 (defun allout-format-quote (string) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6626 "Return a copy of string with all \"%\" characters doubled." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6627 (apply 'concat |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6628 (mapcar (lambda (char) (if (= char ?%) "%%" (char-to-string char))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6629 string))) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6630 ;;;_ : lists |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6631 ;;;_ > allout-flatten (list) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6632 (defun allout-flatten (list) |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6633 "Return a list of all atoms in list." |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6634 ;; classic. |
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6635 (cond ((null list) nil) |
72917
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
6636 ((atom (car list)) (cons (car list) (allout-flatten (cdr list)))) |
17942cb3949e
(allout-regexp, allout-line-boundary-regexp)
Eli Zaretskii <eliz@gnu.org>
parents:
72873
diff
changeset
|
6637 (t (append (allout-flatten (car list)) (allout-flatten (cdr list)))))) |
79915
e54d9b453e0e
(allout-prefix-data): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents:
79721
diff
changeset
|
6638 ;;;_ : Compatibility: |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6639 ;;;_ : xemacs undo-in-progress provision: |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6640 (unless (boundp 'undo-in-progress) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6641 (defvar undo-in-progress nil |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6642 "Placeholder defvar for XEmacs compatibility from allout.el.") |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6643 (defadvice undo-more (around allout activate) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6644 ;; This defadvice used only in emacs that lack undo-in-progress, eg xemacs. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6645 (let ((undo-in-progress t)) ad-do-it))) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6646 |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6647 ;;;_ > allout-mark-marker to accommodate divergent emacsen: |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6648 (defun allout-mark-marker (&optional force buffer) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6649 "Accommodate the different signature for `mark-marker' across Emacsen. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6650 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6651 XEmacs takes two optional args, while mainline GNU Emacs does not, |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6652 so pass them along when appropriate." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6653 (if (featurep 'xemacs) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6654 (apply 'mark-marker force buffer) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6655 (mark-marker))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6656 ;;;_ > subst-char-in-string if necessary |
66230
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6657 (if (not (fboundp 'subst-char-in-string)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6658 (defun subst-char-in-string (fromchar tochar string &optional inplace) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6659 "Replace FROMCHAR with TOCHAR in STRING each time it occurs. |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6660 Unless optional argument INPLACE is non-nil, return a new string." |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6661 (let ((i (length string)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6662 (newstr (if inplace string (copy-sequence string)))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6663 (while (> i 0) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6664 (setq i (1- i)) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6665 (if (eq (aref newstr i) fromchar) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6666 (aset newstr i tochar))) |
4344fd52a670
Add autoloads of crypt++ and mailcrypt routines, all for encryption
Eli Zaretskii <eliz@gnu.org>
parents:
64762
diff
changeset
|
6667 newstr))) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6668 ;;;_ > wholenump if necessary |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6669 (if (not (fboundp 'wholenump)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6670 (defalias 'wholenump 'natnump)) |
72873
b42e98d06749
* allout.el (allout-regexp, allout-line-boundary-regexp)
Chong Yidong <cyd@stupidchicken.com>
parents:
72367
diff
changeset
|
6671 ;;;_ > remove-overlays if necessary |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6672 (if (not (fboundp 'remove-overlays)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6673 (defun remove-overlays (&optional beg end name val) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6674 "Clear BEG and END of overlays whose property NAME has value VAL. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6675 Overlays might be moved and/or split. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6676 BEG and END default respectively to the beginning and end of buffer." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6677 (unless beg (setq beg (point-min))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6678 (unless end (setq end (point-max))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6679 (if (< end beg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6680 (setq beg (prog1 end (setq end beg)))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6681 (save-excursion |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6682 (dolist (o (overlays-in beg end)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6683 (when (eq (overlay-get o name) val) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6684 ;; Either push this overlay outside beg...end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6685 ;; or split it to exclude beg...end |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6686 ;; or delete it entirely (if it is contained in beg...end). |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6687 (if (< (overlay-start o) beg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6688 (if (> (overlay-end o) end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6689 (progn |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6690 (move-overlay (copy-overlay o) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6691 (overlay-start o) beg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6692 (move-overlay o end (overlay-end o))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6693 (move-overlay o (overlay-start o) beg)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6694 (if (> (overlay-end o) end) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6695 (move-overlay o end (overlay-end o)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6696 (delete-overlay o))))))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6697 ) |
79939 | 6698 ;;;_ > copy-overlay if necessary -- xemacs ~ 21.4 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6699 (if (not (fboundp 'copy-overlay)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6700 (defun copy-overlay (o) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6701 "Return a copy of overlay O." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6702 (let ((o1 (make-overlay (overlay-start o) (overlay-end o) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6703 ;; FIXME: there's no easy way to find the |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6704 ;; insertion-type of the two markers. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6705 (overlay-buffer o))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6706 (props (overlay-properties o))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6707 (while props |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6708 (overlay-put o1 (pop props) (pop props))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6709 o1))) |
79939 | 6710 ;;;_ > add-to-invisibility-spec if necessary -- xemacs ~ 21.4 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6711 (if (not (fboundp 'add-to-invisibility-spec)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6712 (defun add-to-invisibility-spec (element) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6713 "Add ELEMENT to `buffer-invisibility-spec'. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6714 See documentation for `buffer-invisibility-spec' for the kind of elements |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6715 that can be added." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6716 (if (eq buffer-invisibility-spec t) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6717 (setq buffer-invisibility-spec (list t))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6718 (setq buffer-invisibility-spec |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6719 (cons element buffer-invisibility-spec)))) |
79939 | 6720 ;;;_ > remove-from-invisibility-spec if necessary -- xemacs ~ 21.4 |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6721 (if (not (fboundp 'remove-from-invisibility-spec)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6722 (defun remove-from-invisibility-spec (element) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6723 "Remove ELEMENT from `buffer-invisibility-spec'." |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6724 (if (consp buffer-invisibility-spec) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6725 (setq buffer-invisibility-spec (delete element |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6726 buffer-invisibility-spec))))) |
79939 | 6727 ;;;_ > move-beginning-of-line if necessary -- older emacs, xemacs |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6728 (if (not (fboundp 'move-beginning-of-line)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6729 (defun move-beginning-of-line (arg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6730 "Move point to beginning of current line as displayed. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6731 \(This disregards invisible newlines such as those |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6732 which are part of the text that an image rests on.) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6733 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6734 With argument ARG not nil or 1, move forward ARG - 1 lines first. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6735 If point reaches the beginning or end of buffer, it stops there. |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
6736 To ignore intangibility, bind `inhibit-point-motion-hooks' to t." |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6737 (interactive "p") |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6738 (or arg (setq arg 1)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6739 (if (/= arg 1) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6740 (condition-case nil (line-move (1- arg)) (error nil))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6741 |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6742 ;; Move to beginning-of-line, ignoring fields and invisibles. |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6743 (skip-chars-backward "^\n") |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6744 (while (and (not (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6745 (let ((prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6746 (get-char-property (1- (point)) 'invisible))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6747 (if (eq buffer-invisibility-spec t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6748 prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6749 (or (memq prop buffer-invisibility-spec) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6750 (assq prop buffer-invisibility-spec))))) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6751 (goto-char (if (featurep 'xemacs) |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6752 (previous-property-change (point)) |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6753 (previous-char-property-change (point)))) |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6754 (skip-chars-backward "^\n")) |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6755 (vertical-motion 0)) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6756 ) |
111445
56b71cddc9c5
Replace still more end-of-line etc with line-end-position, etc.
Glenn Morris <rgm@gnu.org>
parents:
108209
diff
changeset
|
6757 ;;;_ > move-end-of-line if necessary -- Emacs < 22.1, xemacs |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6758 (if (not (fboundp 'move-end-of-line)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6759 (defun move-end-of-line (arg) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6760 "Move point to end of current line as displayed. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6761 \(This disregards invisible newlines such as those |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6762 which are part of the text that an image rests on.) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6763 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6764 With argument ARG not nil or 1, move forward ARG - 1 lines first. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6765 If point reaches the beginning or end of buffer, it stops there. |
69481
be6a0491d438
* allout.el: Increment version to 2.2.1 in file commentary.
Luc Teirlinck <teirllm@auburn.edu>
parents:
69250
diff
changeset
|
6766 To ignore intangibility, bind `inhibit-point-motion-hooks' to t." |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6767 (interactive "p") |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6768 (or arg (setq arg 1)) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6769 (let (done) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6770 (while (not done) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6771 (let ((newpos |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6772 (save-excursion |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6773 (let ((goal-column 0)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6774 (and (condition-case nil |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6775 (or (line-move arg) t) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6776 (error nil)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6777 (not (bobp)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6778 (progn |
85769
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6779 (while |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6780 (and |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6781 (not (bobp)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6782 (let ((prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6783 (get-char-property (1- (point)) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6784 'invisible))) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6785 (if (eq buffer-invisibility-spec t) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6786 prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6787 (or (memq prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6788 buffer-invisibility-spec) |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6789 (assq prop |
de8ef384c3ef
* allout.el (allout-command-prefix, allout-inhibit-auto-fill):
Dan Nicolaescu <dann@ics.uci.edu>
parents:
85114
diff
changeset
|
6790 buffer-invisibility-spec))))) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6791 (goto-char |
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6792 (previous-char-property-change (point)))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6793 (backward-char 1))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6794 (point))))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6795 (goto-char newpos) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6796 (if (and (> (point) newpos) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6797 (eq (preceding-char) ?\n)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6798 (backward-char 1) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6799 (if (and (> (point) newpos) (not (eobp)) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6800 (not (eq (following-char) ?\n))) |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6801 ;; If we skipped something intangible |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6802 ;; and now we're not really at eol, |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6803 ;; keep going. |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6804 (setq arg 1) |
70244
ccd02e1ca0e3
Remove local autoload declaration for
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70225
diff
changeset
|
6805 (setq done t))))))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6806 ) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6807 ;;;_ > allout-next-single-char-property-change -- alias unless lacking |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6808 (defalias 'allout-next-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6809 (if (fboundp 'next-single-char-property-change) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6810 'next-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6811 'next-single-property-change) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6812 ;; No docstring because xemacs defalias doesn't support it. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6813 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6814 ;;;_ > allout-previous-single-char-property-change -- alias unless lacking |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6815 (defalias 'allout-previous-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6816 (if (fboundp 'previous-single-char-property-change) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6817 'previous-single-char-property-change |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6818 'previous-single-property-change) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6819 ;; No docstring because xemacs defalias doesn't support it. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6820 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6821 ;;;_ > allout-set-buffer-multibyte |
112027
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6822 (if (fboundp 'set-buffer-multibyte) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6823 (defalias 'allout-set-buffer-multibyte 'set-buffer-multibyte) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6824 (with-no-warnings |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6825 ;; this definition is used only in older or alternative emacs, where |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6826 ;; the setting is our only recourse. |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6827 (defun allout-set-buffer-multibyte (is-multibyte) |
a23f5102654d
(allout-v18/19-file-var-hack): Obsolete, remove.
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111989
diff
changeset
|
6828 (set enable-multibyte-characters is-multibyte)))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6829 ;;;_ > allout-select-safe-coding-system |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6830 (defalias 'allout-select-safe-coding-system |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6831 (if (fboundp 'select-safe-coding-system) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6832 'select-safe-coding-system |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6833 'detect-coding-region) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6834 ) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6835 ;;;_ > allout-substring-no-properties |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6836 ;; define as alias first, so byte compiler is happy. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6837 (defalias 'allout-substring-no-properties 'substring-no-properties) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6838 ;; then supplant with definition if underlying alias absent. |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6839 (if (not (fboundp 'substring-no-properties)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6840 (defun allout-substring-no-properties (string &optional start end) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6841 (substring string (or start 0) end)) |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6842 ) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6843 |
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6844 ;;;_ #10 Unfinished |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6845 ;;;_ > allout-bullet-isearch (&optional bullet) |
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6846 (defun allout-bullet-isearch (&optional bullet) |
74381
cba6f2b24720
Ken Manheimer <ken.manheimer@gmail.com>:
Kim F. Storm <storm@cua.dk>
parents:
74011
diff
changeset
|
6847 "Isearch (regexp) for topic with bullet BULLET." |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6848 (interactive) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6849 (if (not bullet) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6850 (setq bullet (solicit-char-in-string |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6851 "ISearch for topic with bullet: " |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6852 (regexp-sans-escapes allout-bullets-string)))) |
15664
a50ebf4ac764
(outline-auto-activation, outline-layout)
Karl Heuer <kwzh@gnu.org>
parents:
15663
diff
changeset
|
6853 |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6854 (let ((isearch-regexp t) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6855 (isearch-string (concat "^" |
48856
e7aab76fa215
Avoid name conflicts with outline.el. Use 3 installments to keep
Markus Rost <rost@math.uni-bielefeld.de>
parents:
47127
diff
changeset
|
6856 allout-header-prefix |
7218
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6857 "[ \t]*" |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6858 bullet))) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6859 (isearch-repeat 'forward) |
49f9f9a08b4c
major code speedups, bug fixes, behavior
Richard M. Stallman <rms@gnu.org>
parents:
6736
diff
changeset
|
6860 (isearch-mode t))) |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6861 |
79939 | 6862 ;;;_ #11 Unit tests -- this should be last item before "Provide" |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6863 ;;;_ > allout-run-unit-tests () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6864 (defun allout-run-unit-tests () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6865 "Run the various allout unit tests." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6866 (message "Running allout tests...") |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6867 (allout-test-resumptions) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6868 (message "Running allout tests... Done.") |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6869 (sit-for .5)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6870 ;;;_ : test resumptions: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6871 ;;;_ > allout-tests-obliterate-variable (name) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6872 (defun allout-tests-obliterate-variable (name) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6873 "Completely unbind variable with NAME." |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6874 (if (local-variable-p name (current-buffer)) (kill-local-variable name)) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6875 (while (boundp name) (makunbound name))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6876 ;;;_ > allout-test-resumptions () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6877 (defvar allout-tests-globally-unbound nil |
79939 | 6878 "Fodder for allout resumptions tests -- defvar just for byte compiler.") |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6879 (defvar allout-tests-globally-true nil |
79939 | 6880 "Fodder for allout resumptions tests -- defvar just for byte compiler.") |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6881 (defvar allout-tests-locally-true nil |
79939 | 6882 "Fodder for allout resumptions tests -- defvar just for byte compiler.") |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6883 (defun allout-test-resumptions () |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6884 "Exercise allout resumptions." |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6885 ;; for each resumption case, we also test that the right local/global |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6886 ;; scopes are affected during resumption effects: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6887 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6888 ;; ensure that previously unbound variables return to the unbound state. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6889 (with-temp-buffer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6890 (allout-tests-obliterate-variable 'allout-tests-globally-unbound) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6891 (allout-add-resumptions '(allout-tests-globally-unbound t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6892 (assert (not (default-boundp 'allout-tests-globally-unbound))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6893 (assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6894 (assert (boundp 'allout-tests-globally-unbound)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6895 (assert (equal allout-tests-globally-unbound t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6896 (allout-do-resumptions) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6897 (assert (not (local-variable-p 'allout-tests-globally-unbound |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6898 (current-buffer)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6899 (assert (not (boundp 'allout-tests-globally-unbound)))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6900 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6901 ;; ensure that variable with prior global value is resumed |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6902 (with-temp-buffer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6903 (allout-tests-obliterate-variable 'allout-tests-globally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6904 (setq allout-tests-globally-true t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6905 (allout-add-resumptions '(allout-tests-globally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6906 (assert (equal (default-value 'allout-tests-globally-true) t)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6907 (assert (local-variable-p 'allout-tests-globally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6908 (assert (equal allout-tests-globally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6909 (allout-do-resumptions) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6910 (assert (not (local-variable-p 'allout-tests-globally-true |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6911 (current-buffer)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6912 (assert (boundp 'allout-tests-globally-true)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6913 (assert (equal allout-tests-globally-true t))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6914 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6915 ;; ensure that prior local value is resumed |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6916 (with-temp-buffer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6917 (allout-tests-obliterate-variable 'allout-tests-locally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6918 (set (make-local-variable 'allout-tests-locally-true) t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6919 (assert (not (default-boundp 'allout-tests-locally-true)) |
79939 | 6920 nil (concat "Test setup mistake -- variable supposed to" |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6921 " not have global binding, but it does.")) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6922 (assert (local-variable-p 'allout-tests-locally-true (current-buffer)) |
79939 | 6923 nil (concat "Test setup mistake -- variable supposed to have" |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6924 " local binding, but it lacks one.")) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6925 (allout-add-resumptions '(allout-tests-locally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6926 (assert (not (default-boundp 'allout-tests-locally-true))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6927 (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6928 (assert (equal allout-tests-locally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6929 (allout-do-resumptions) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6930 (assert (boundp 'allout-tests-locally-true)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6931 (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6932 (assert (equal allout-tests-locally-true t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6933 (assert (not (default-boundp 'allout-tests-locally-true)))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6934 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6935 ;; ensure that last of multiple resumptions holds, for various scopes. |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6936 (with-temp-buffer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6937 (allout-tests-obliterate-variable 'allout-tests-globally-unbound) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6938 (allout-tests-obliterate-variable 'allout-tests-globally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6939 (setq allout-tests-globally-true t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6940 (allout-tests-obliterate-variable 'allout-tests-locally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6941 (set (make-local-variable 'allout-tests-locally-true) t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6942 (allout-add-resumptions '(allout-tests-globally-unbound t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6943 '(allout-tests-globally-true nil) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6944 '(allout-tests-locally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6945 (allout-add-resumptions '(allout-tests-globally-unbound 2) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6946 '(allout-tests-globally-true 3) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6947 '(allout-tests-locally-true 4)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6948 ;; reestablish many of the basic conditions are maintained after re-add: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6949 (assert (not (default-boundp 'allout-tests-globally-unbound))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6950 (assert (local-variable-p 'allout-tests-globally-unbound (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6951 (assert (equal allout-tests-globally-unbound 2)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6952 (assert (default-boundp 'allout-tests-globally-true)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6953 (assert (local-variable-p 'allout-tests-globally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6954 (assert (equal allout-tests-globally-true 3)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6955 (assert (not (default-boundp 'allout-tests-locally-true))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6956 (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6957 (assert (equal allout-tests-locally-true 4)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6958 (allout-do-resumptions) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6959 (assert (not (local-variable-p 'allout-tests-globally-unbound |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6960 (current-buffer)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6961 (assert (not (boundp 'allout-tests-globally-unbound))) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6962 (assert (not (local-variable-p 'allout-tests-globally-true |
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6963 (current-buffer)))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6964 (assert (boundp 'allout-tests-globally-true)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6965 (assert (equal allout-tests-globally-true t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6966 (assert (boundp 'allout-tests-locally-true)) |
111535
c7ebfc6cd27a
(allout-keybindings), (allout-bind-keys), (allout-keybindings-binding),
Ken Manheimer <ken.manheimer@gmail.com>
parents:
111445
diff
changeset
|
6967 (assert (local-variable-p 'allout-tests-locally-true (current-buffer))) |
71893
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6968 (assert (equal allout-tests-locally-true t)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6969 (assert (not (default-boundp 'allout-tests-locally-true)))) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6970 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6971 ;; ensure that deliberately unbinding registered variables doesn't foul things |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6972 (with-temp-buffer |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6973 (allout-tests-obliterate-variable 'allout-tests-globally-unbound) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6974 (allout-tests-obliterate-variable 'allout-tests-globally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6975 (setq allout-tests-globally-true t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6976 (allout-tests-obliterate-variable 'allout-tests-locally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6977 (set (make-local-variable 'allout-tests-locally-true) t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6978 (allout-add-resumptions '(allout-tests-globally-unbound t) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6979 '(allout-tests-globally-true nil) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6980 '(allout-tests-locally-true nil)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6981 (allout-tests-obliterate-variable 'allout-tests-globally-unbound) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6982 (allout-tests-obliterate-variable 'allout-tests-globally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6983 (allout-tests-obliterate-variable 'allout-tests-locally-true) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6984 (allout-do-resumptions)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6985 ) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6986 ;;;_ % Run unit tests if `allout-run-unit-tests-after-load' is true: |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6987 (when allout-run-unit-tests-on-load |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6988 (allout-run-unit-tests)) |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6989 |
bb3316be643e
Require 'cl during byte-compilation/interactive load, for the `assert' macro.
Eli Zaretskii <eliz@gnu.org>
parents:
71625
diff
changeset
|
6990 ;;;_ #12 Provide |
68953
0ddd5b380ffb
Use allout invisible-text overlays instead of
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
6991 (provide 'allout) |
3430 | 6992 |
6993 ;;;_* Local emacs vars. | |
69124
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6994 ;; The following `allout-layout' local variable setting: |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6995 ;; - closes all topics from the first topic to just before the third-to-last, |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6996 ;; - shows the children of the third to last (config vars) |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6997 ;; - and the second to last (code section), |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6998 ;; - and closes the last topic (this local-variables section). |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
6999 ;;Local variables: |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
7000 ;;allout-layout: (0 : -1 -1 0) |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
7001 ;;End: |
f6b5ed4f7f58
Add 2006 copyright.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68956
diff
changeset
|
7002 |
38431
853c3674f20a
Fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
38250
diff
changeset
|
7003 ;;; allout.el ends here |