annotate lisp/textmodes/page-ext.el @ 107189:a48b193e3b5f

(tramp-handle-insert-file-contents): Set always the permissions of the temporary file to "0600". In case the remote file has no read permissions for the owner, there might be problems otherwise. Reported by Ole Laursen <olau@iola.dk>.
author Michael Albinus <michael.albinus@gmx.de>
date Thu, 18 Feb 2010 11:03:12 +0100
parents 1d1d5d9bd884
children 7c4da622f181 376148b31b5e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
1 ;;; page-ext.el --- extended page handling commands
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
2
95621
3e8dd23c12aa Remove unnecessary eval-when-compile.
Glenn Morris <rgm@gnu.org>
parents: 94670
diff changeset
3 ;; Copyright (C) 1990, 1991, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 105813
diff changeset
4 ;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
5
101086
300932ce878b Comment (add an author based on ack.texi).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
6 ;; Author: Robert J. Chassell <bob@gnu.org>
300932ce878b Comment (add an author based on ack.texi).
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
7 ;; (according to ack.texi)
38697
a19197c6442f Keyword added and FSF specified as Maintainer.
Pavel Janík <Pavel@Janik.cz>
parents: 38436
diff changeset
8 ;; Keywords: wp data
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9
664
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
10 ;; This file is part of GNU Emacs.
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
11
94670
f4a69fedbd46 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
12 ;; GNU Emacs is free software: you can redistribute it and/or modify
664
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
94670
f4a69fedbd46 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; the Free Software Foundation, either version 3 of the License, or
f4a69fedbd46 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
15 ;; (at your option) any later version.
664
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
16
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
20 ;; GNU General Public License for more details.
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
21
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
22 ;; You should have received a copy of the GNU General Public License
94670
f4a69fedbd46 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
23 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
24
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
25 ;;; Commentary:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
26
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
27 ;; You may use these commands to handle an address list or other
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
28 ;; small data base.
664
9b0e666dfdf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
29
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
31 ;;; Summary
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
33 ;; The current page commands are:
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
35 ;; forward-page C-x ]
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
36 ;; backward-page C-x [
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
37 ;; narrow-to-page C-x p
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
38 ;; count-lines-page C-x l
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
39 ;; mark-page C-x C-p (change this to C-x C-p C-m)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
40 ;; sort-pages not bound
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
41 ;; what-page not bound
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
43 ;; The new page handling commands all use `C-x C-p' as a prefix. This
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
44 ;; means that the key binding for `mark-page' must be changed.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
45 ;; Otherwise, no other changes are made to the current commands or
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
46 ;; their bindings.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
48 ;; New page handling commands:
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
50 ;; next-page C-x C-p C-n
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
51 ;; previous-page C-x C-p C-p
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
52 ;; search-pages C-x C-p C-s
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
53 ;; add-new-page C-x C-p C-a
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
54 ;; sort-pages-buffer C-x C-p s
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
55 ;; set-page-delimiter C-x C-p C-l
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
56 ;; pages-directory C-x C-p C-d
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
57 ;; pages-directory-for-addresses C-x C-p d
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
58 ;; pages-directory-goto C-c C-c
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
61 ;;; Using the page commands
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
62
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
63 ;; The page commands are helpful in several different contexts. For
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
64 ;; example, programmers often divide source files into sections using the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
65 ;; `page-delimiter'; you can use the `pages-directory' command to list
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
66 ;; the sections.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
68 ;; You may change the buffer local value of the `page-delimiter' with
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
69 ;; the `set-page-delimiter' command. This command is bound to `C-x C-p
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
70 ;; C-l' The command prompts you for a new value for the page-delimiter.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
71 ;; Called with a prefix-arg, the command resets the value of the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
72 ;; page-delimiter to its original value.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
74 ;; You may set several user options:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
75 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
76 ;; The `pages-directory-buffer-narrowing-p' variable causes the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
77 ;; `pages-directory-goto' command to narrow to the destination page.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
78 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
79 ;; The `pages-directory-for-adding-page-narrowing-p' variable, causes the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
80 ;; `add-new-page' command to narrow to the new entry.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
81 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
82 ;; The `pages-directory-for-adding-new-page-before-current-page-p' variable
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
83 ;; causes the `add-new-page' command to insert a new page before current
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
84 ;; page.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
85 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
86 ;; These variables are true by default.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
87 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
88 ;; Additional, addresses-related user options are described in the next page
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
89 ;; of this file.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
90
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
92 ;;; Handling an address list or small data base
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
93
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
94 ;; You may use the page commands to handle an address list or other
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
95 ;; small data base. Put each address or entry on its own page. The
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
96 ;; first line of text in each page is a `header line' and is listed by
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
97 ;; the `pages-directory' or `pages-directory-for-addresses' command.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
99 ;; Specifically:
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
100 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
101 ;; 1. Begin each entry with a `page-delimiter' (which is, by default,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
102 ;; `^L' at the beginning of the line).
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
103 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
104 ;; 2. The first line of text in each entry is the `heading line'; it
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
105 ;; will appear in the pages-directory-buffer which is constructed
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
106 ;; using the `C-x C-p C-d' (pages-directory) command or the `C-x
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
107 ;; C-p d' (pages-directory-for-addresses) command.
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
108 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
109 ;; The heading line may be on the same line as the page-delimiter
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
110 ;; or it may follow after. It is the first non-blank line on the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
111 ;; page. Conventionally, the heading line is placed on the line
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
112 ;; immediately following the line containing page-delimiter.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
113 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
114 ;; 3. Follow the heading line with the body of the entry. The body
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
115 ;; extends up to the next `page-delimiter'. The body may be of any
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
116 ;; length. It is conventional to place a blank line after the last
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
117 ;; line of the body.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
118
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
119 ;; For example, a file might look like this:
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
120 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
121 ;; FSF
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
122 ;; Free Software Foundation
64091
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64084
diff changeset
123 ;; 51 Franklin Street, Fifth Floor
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 64084
diff changeset
124 ;; Boston, MA 02110-1301 USA.
15741
a1176aab935b Use current FSF address/phone in sample file.
Karl Heuer <kwzh@gnu.org>
parents: 14169
diff changeset
125 ;; (617) 542-5942
25278
cbe304a26771 Fix maintainer address.
Karl Heuer <kwzh@gnu.org>
parents: 23965
diff changeset
126 ;; gnu@gnu.org
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
127 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
128 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
129 ;; House Subcommittee on Intellectual Property,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
130 ;; U.S. House of Representatives,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
131 ;; Washington, DC 20515
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
132 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
133 ;; Congressional committee concerned with permitting or preventing
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
134 ;; monopolistic restrictions on the use of software technology.
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
135 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
136 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
137 ;; George Lakoff
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
138 ;; ``Women, Fire, and Dangerous Things:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
139 ;; What Categories Reveal about the Mind''
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
140 ;; 1987, Univ. of Chicago Press
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
141 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
142 ;; About philosophy, Whorfian effects, and linguistics.
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
143 ;;
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
144 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
145 ;; OBI (On line text collection.)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
146 ;; Open Book Initiative
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
147 ;; c/o Software Tool & Die
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
148 ;; 1330 Beacon St, Brookline, MA 02146 USA
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
149 ;; (617) 739-0202
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
150 ;; obi@world.std.com
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
152 ;; In this example, the heading lines are:
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
153 ;;
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
154 ;; FSF
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
155 ;; House Subcommittee on Intellectual Property
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
156 ;; George Lakoff
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
157 ;; OBI (On line text collection.)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
159 ;; The `C-x C-p s' (sort-pages-buffer) command sorts the entries in the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
160 ;; buffer alphabetically.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
162 ;; You may use any of the page commands, including the `next-page',
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
163 ;; `previous-page', `add-new-page', `mark-page', and `search-pages'
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
164 ;; commands.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
165
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
166 ;; You may use either the `C-x C-p d' (pages-directory-for-addresses)
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
167 ;; or the `C-x C-p C-d' (pages-directory) command to construct and
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
168 ;; display a directory of all the heading lines.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
170 ;; In the directory, you may position the cursor over a heading line
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
171 ;; and type `C-c C-c' (pages-directory-goto) to go to the entry to
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
172 ;; which it refers in the pages buffer.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
174 ;; You can type `C-c C-p C-a' (add-new-page) to add a new entry in the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
175 ;; pages buffer or address file. This is the same command you use to
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
176 ;; add a new entry when you are in the pages buffer or address file.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
178 ;; If you wish, you may create several different directories,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
179 ;; one for each different buffer.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 ;; `pages-directory-for-addresses' in detail
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
183 ;; The `pages-directory-for-addresses' assumes a default addresses
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
184 ;; file. You do not need to specify the addresses file but merely type
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
185 ;; `C-x C-p d' from any buffer. The command finds the file, constructs
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
186 ;; a directory for it, and switches you to the directory. If you call
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
187 ;; the command with a prefix arg, `C-u C-x C-p d', it prompts you for a
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
188 ;; file name.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
190 ;; You may customize the addresses commands:
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
191
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
192 ;; The `pages-addresses-file-name' variable determines the name of
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
193 ;; the addresses file; by default it is "~/addresses".
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
194
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
195 ;; The `pages-directory-for-addresses-goto-narrowing-p' variable
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
196 ;; determines whether `pages-directory-goto' narrows the addresses
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
197 ;; buffer to the entry, which it does by default.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
198
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
199 ;; The `pages-directory-for-addresses-buffer-keep-windows-p' variable
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
200 ;; determines whether `pages-directory-for-addresses' deletes other
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
201 ;; windows to show as many lines as possible on the screen or works
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
202 ;; in the usual Emacs manner and keeps other windows. Default is to
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
203 ;; keep other windows.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
204
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
205 ;; The `pages-directory-for-adding-addresses-narrowing-p' variable
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
206 ;; determines whether `pages-directory-for-addresses' narrows the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
207 ;; addresses buffer to a new entry when you are adding that entry.
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
208 ;; Default is to narrow to new entry, which means you see a blank
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
209 ;; screen before you write the new entry.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
210
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 ;; `pages-directory' in detail
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
213 ;; Call the `pages-directory' command from the buffer for which you
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
214 ;; want a directory created; it creates a directory for the buffer and
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
215 ;; pops you to the directory.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
217 ;; The `pages-directory' command has several options:
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
219 ;; Called with a prefix arg, `C-u C-x C-p C-d', the `pages-directory'
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
220 ;; prompts you for a regular expression and only lists only those
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
221 ;; header lines that are part of pages that contain matches to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
222 ;; regexp. In the example above, `C-u C-x C-p C-d 617 RET' would
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
223 ;; match the telephone area code of the first and fourth entries, so
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
224 ;; only the header lines of those two entries would appear in the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
225 ;; pages-directory-buffer.
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
226 ;;
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
227 ;; Called with a numeric argument, the `pages-directory' command
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
228 ;; lists the number of lines in each page. This is helpful when you
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
229 ;; are printing hardcopy.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
231 ;; Called with a negative numeric argument, the `pages-directory'
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 14040
diff changeset
232 ;; command lists the lengths of pages whose contents match a regexp.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
234 ;;; Code:
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
235
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
237 ;;; Customarily customizable variable definitions
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
238
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
239 (defgroup pages nil
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
240 "Extended page-handling commands."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
241 :group 'extensions)
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
242
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
243
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
244 (defcustom pages-directory-buffer-narrowing-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
245 "*If non-nil, `pages-directory-goto' narrows pages buffer to entry."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
246 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
247 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
248
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
249 (defcustom pages-directory-for-adding-page-narrowing-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
250 "*If non-nil, `add-new-page' narrows page buffer to new entry."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
251 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
252 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
253
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
254 (defcustom pages-directory-for-adding-new-page-before-current-page-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
255 "*If non-nil, `add-new-page' inserts new page before current page."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
256 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
257 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
258
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
259
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
260 ;;; Addresses related variables
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
261
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
262 (defcustom pages-addresses-file-name "~/addresses"
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
263 "*Standard name for file of addresses. Entries separated by page-delimiter.
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
264 Used by `pages-directory-for-addresses' function."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
265 :type 'file
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
266 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
267
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
268 (defcustom pages-directory-for-addresses-goto-narrowing-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
269 "*If non-nil, `pages-directory-goto' narrows addresses buffer to entry."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
270 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
271 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
272
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
273 (defcustom pages-directory-for-addresses-buffer-keep-windows-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
274 "*If nil, `pages-directory-for-addresses' deletes other windows."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
275 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
276 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
277
17436
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
278 (defcustom pages-directory-for-adding-addresses-narrowing-p t
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
279 "*If non-nil, `add-new-page' narrows addresses buffer to new entry."
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
280 :type 'boolean
2a9fdbfcb993 Add defgroup; use defcustom for user vars.
Richard M. Stallman <rms@gnu.org>
parents: 15741
diff changeset
281 :group 'pages)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
282
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
283
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
284 ;;; Key bindings for page handling functions
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 (global-unset-key "\C-x\C-p")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 (defvar ctl-x-ctl-p-map (make-sparse-keymap)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
289 "Keymap for subcommands of C-x C-p, which are for page handling.")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291 (define-key ctl-x-map "\C-p" 'ctl-x-ctl-p-prefix)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 (fset 'ctl-x-ctl-p-prefix ctl-x-ctl-p-map)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
294 (define-key ctl-x-ctl-p-map "\C-n" 'next-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
295 (define-key ctl-x-ctl-p-map "\C-p" 'previous-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 (define-key ctl-x-ctl-p-map "\C-a" 'add-new-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 (define-key ctl-x-ctl-p-map "\C-m" 'mark-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
298 (define-key ctl-x-ctl-p-map "\C-s" 'search-pages)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 (define-key ctl-x-ctl-p-map "s" 'sort-pages-buffer)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 (define-key ctl-x-ctl-p-map "\C-l" 'set-page-delimiter)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 (define-key ctl-x-ctl-p-map "\C-d" 'pages-directory)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
302 (define-key ctl-x-ctl-p-map "d" 'pages-directory-for-addresses)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
304
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
305 ;;; Page movement function definitions
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307 (defun next-page (&optional count)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308 "Move to the next page bounded by the `page-delimiter' variable.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 With arg (prefix if interactive), move that many pages."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
310 (interactive "p")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
311 (or count (setq count 1))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312 (widen)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 ;; Cannot use forward-page because of problems at page boundaries.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 (while (and (> count 0) (not (eobp)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 (if (re-search-forward page-delimiter nil t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
317 (goto-char (point-max)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318 (setq count (1- count)))
1770
29bcc2c88773 * page-ext.el (next-page): Correctly handle negative page count.
Jim Blandy <jimb@redhat.com>
parents: 845
diff changeset
319 ;; If COUNT is negative, we want to go back -COUNT + 1 page boundaries.
29bcc2c88773 * page-ext.el (next-page): Correctly handle negative page count.
Jim Blandy <jimb@redhat.com>
parents: 845
diff changeset
320 ;; The first page boundary we reach is the top of the current page,
29bcc2c88773 * page-ext.el (next-page): Correctly handle negative page count.
Jim Blandy <jimb@redhat.com>
parents: 845
diff changeset
321 ;; which doesn't count.
29bcc2c88773 * page-ext.el (next-page): Correctly handle negative page count.
Jim Blandy <jimb@redhat.com>
parents: 845
diff changeset
322 (while (and (< count 1) (not (bobp)))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323 (if (re-search-backward page-delimiter nil t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 (goto-char (match-beginning 0))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325 (goto-char (point-min)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326 (setq count (1+ count)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 (narrow-to-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 (goto-char (point-min))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 (recenter 0))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331 (defun previous-page (&optional count)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 "Move to the previous page bounded by the `page-delimiter' variable.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 With arg (prefix if interactive), move that many pages."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 (interactive "p")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335 (or count (setq count 1))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336 (next-page (- count)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
339 ;;; Adding and searching pages
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341 (defun add-new-page (header-line)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
342 "Insert new page. Prompt for header line.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
343
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
344 If point is in the pages directory buffer, insert the new page in the
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
345 buffer associated with the directory.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
346
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
347 Insert the new page just before current page if
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
348 pages-directory-for-adding-new-page-before-current-page-p variable
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
349 is non-nil. Else insert at exact location of point.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
350
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
351 Narrow to new page if
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
352 pages-directory-for-adding-page-narrowing-p variable
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
353 is non-nil.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
354
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
355 Page begins with a `^L' as the default page-delimiter.
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
356 Use \\[set-page-delimiter] to change the page-delimiter.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 Point is left in the body of page."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 (interactive "sHeader line: ")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359 (widen)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
360 ;; If in pages directory buffer
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
361 (if (eq major-mode 'pages-directory-mode)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
362 (progn
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
363 ;; Add new page before or after current page?
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
364 (if pages-directory-for-adding-new-page-before-current-page-p
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
365 (pages-directory-goto)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
366 (pages-directory-goto)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
367 (forward-page)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
368 (or (eobp) (forward-line -1)))))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
369 (widen)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
370 ;; Move point before current delimiter if desired.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
371 (and pages-directory-for-adding-new-page-before-current-page-p
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
372 (if (re-search-backward page-delimiter nil t)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
373 (goto-char (match-beginning 0))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
374 ;; If going to beginning of file, insert a page-delimiter
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
375 ;; before current first page.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
376 (goto-char (point-min))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
377 (insert
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
378 (format "%s\n"
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
379 ;; Remove leading `^' from page-delimiter string
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
380 (if (eq '^ (car (read-from-string page-delimiter)))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
381 (substring page-delimiter 1))))
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
382 (goto-char (point-min))))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
383 ;; Insert page delimiter at beginning of line.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
384 (if (not (looking-at "^.")) (forward-line 1))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
385 (insert (format "%s\n%s\n\n\n"
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
386 (if (eq '^ (car (read-from-string page-delimiter)))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
387 (substring page-delimiter 1))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
388 header-line))
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
389 (forward-line -1)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
390 (and pages-directory-for-adding-page-narrowing-p (narrow-to-page)))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
391
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
392 (defvar pages-last-search nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
393 "Value of last regexp searched for. Initially, nil.")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395 (defun search-pages (regexp)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 "Search for REGEXP, starting from point, and narrow to page it is in."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397 (interactive (list
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 (read-string
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 (format "Search for `%s' (end with RET): "
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400 (or pages-last-search "regexp")))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401 (if (equal regexp "")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402 (setq regexp pages-last-search)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 (setq pages-last-search regexp))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 (widen)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 (re-search-forward regexp)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406 (narrow-to-page))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
408
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
409 ;;; Sorting pages
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411 (autoload 'sort-subr "sort" "Primary function for sorting." t nil)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 (defun sort-pages-in-region (reverse beg end)
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
414 "Sort pages in region alphabetically. Prefix arg means reverse order.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
416 Called from a program, there are three arguments:
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417 REVERSE (non-nil means reverse order), BEG and END (region to sort)."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
419 ;;; This sort function handles ends of pages differently than
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420 ;;; `sort-pages' and works better with lists of addresses and similar
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421 ;;; files.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
422
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423 (interactive "P\nr")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424 (save-restriction
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
425 (narrow-to-region beg end)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
426 (goto-char (point-min))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
427 ;;; `sort-subr' takes three arguments
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
428 (sort-subr reverse
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
429
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
430 ;; NEXTRECFUN is called with point at the end of the
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
431 ;; previous record. It moves point to the start of the
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
432 ;; next record.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433 (function (lambda ()
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
434 (re-search-forward page-delimiter nil t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
435 (skip-chars-forward " \t\n")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
436 ))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
437
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438 ;; ENDRECFUN is is called with point within the record.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
439 ;; It should move point to the end of the record.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
440 (function (lambda ()
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
441 (if (re-search-forward
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
442 page-delimiter
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
443 nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
444 t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
445 (goto-char (match-beginning 0))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
446 (goto-char (point-max))))))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
447
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
448 (defun sort-pages-buffer (&optional reverse)
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
449 "Sort pages alphabetically in buffer. Prefix arg means reverse order.
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
450 \(Non-nil arg if not interactive.\)"
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
451
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
452 (interactive "P")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
453 (or reverse (setq reverse nil))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
454 (widen)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
455 (let ((beginning (point-min))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
456 (end (point-max)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
457 (sort-pages-in-region reverse beginning end)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
458
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
459
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
460 ;;; Pages directory ancillary definitions
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
461
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
462 (defvar pages-directory-previous-regexp nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
463 "Value of previous regexp used by `pages-directory'.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
464 \(This regular expression may be used to select only those pages that
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
465 contain matches to the regexp.\)")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
466
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
467 (defvar pages-buffer nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
468 "The buffer for which the pages-directory function creates the directory.")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
469
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
470 (defvar pages-directory-prefix "*Directory for:"
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
471 "Prefix of name of temporary buffer for pages-directory.")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
472
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
473 (defvar pages-pos-list nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
474 "List containing the positions of the pages in the pages-buffer.")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
475
46863
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
476 (defvar pages-target-buffer)
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
477
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
478 (defvar pages-directory-mode-map
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
479 (let ((map (make-sparse-keymap)))
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
480 (define-key map "\C-c\C-c" 'pages-directory-goto)
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
481 (define-key map "\C-c\C-p\C-a" 'add-new-page)
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
482 (define-key map [mouse-2] 'pages-directory-goto-with-mouse)
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
483 map)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
484 "Keymap for the pages-directory-buffer.")
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
485 (defvaralias 'pages-directory-map 'pages-directory-mode-map)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
486
6337
32cb5a7228ab (original-page-delimiter, set-page-delimiter): Use printable escapes instead of
Karl Heuer <kwzh@gnu.org>
parents: 5311
diff changeset
487 (defvar original-page-delimiter "^\f"
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
488 "Default page delimiter.")
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
489
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
490 (defun set-page-delimiter (regexp reset-p)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
491 "Set buffer local value of page-delimiter to REGEXP.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
492 Called interactively with a prefix argument, reset `page-delimiter' to
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
493 its original value.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
494
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
495 In a program, non-nil second arg causes first arg to be ignored and
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
496 resets the page-delimiter to the original value."
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
497
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
498 (interactive
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
499 (if current-prefix-arg
6337
32cb5a7228ab (original-page-delimiter, set-page-delimiter): Use printable escapes instead of
Karl Heuer <kwzh@gnu.org>
parents: 5311
diff changeset
500 (list original-page-delimiter "^\f")
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
501 (list (read-string "Set page-delimiter to regexp: " page-delimiter)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
502 nil)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
503 (make-local-variable 'original-page-delimiter)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
504 (make-local-variable 'page-delimiter)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
505 (setq original-page-delimiter
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
506 (or original-page-delimiter page-delimiter))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
507 (if (not reset-p)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
508 (setq page-delimiter regexp)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
509 (setq page-delimiter original-page-delimiter))
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 101086
diff changeset
510 (if (called-interactively-p 'interactive)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
511 (message "The value of `page-delimiter' is now: %s" page-delimiter)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
512
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
513
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
514 ;;; Pages directory main definitions
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
515
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
516 (defun pages-directory
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
517 (pages-list-all-headers-p count-lines-p &optional regexp)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
518 "Display a directory of the page headers in a temporary buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
519 A header is the first non-blank line after the page-delimiter.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
520 \\[pages-directory-mode]
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
521 You may move point to one of the lines in the temporary buffer,
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
522 then use \\<pages-directory-goto> to go to the same line in the pages buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
523
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
524 In interactive use:
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
525
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
526 1. With no prefix arg, display all headers.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
527
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
528 2. With prefix arg, display the headers of only those pages that
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
529 contain matches to a regular expression for which you are
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
530 prompted.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
531
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
532 3. With numeric prefix arg, for every page, print the number of
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
533 lines within each page.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
534
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
535 4. With negative numeric prefix arg, for only those pages that
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
536 match a regular expression, print the number of lines within
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
537 each page.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
538
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
539 When called from a program, non-nil first arg means list all headers;
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
540 non-nil second arg means print numbers of lines in each page; if first
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
541 arg is nil, optional third arg is regular expression.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
542
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
543 If the buffer is narrowed, the `pages-directory' command creates a
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
544 directory for only the accessible portion of the buffer."
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
545
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
546 (interactive
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
547 (cond ((not current-prefix-arg)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
548 (list t nil nil))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
549 ((listp current-prefix-arg)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
550 (list nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
551 nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
552 (read-string
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
553 (format "Select according to `%s' (end with RET): "
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
554 (or pages-directory-previous-regexp "regexp")))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
555 ((> (prefix-numeric-value current-prefix-arg) 0)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
556 (list t t nil))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
557 ((< (prefix-numeric-value current-prefix-arg) 0)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
558 (list nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
559 t
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560 (read-string
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561 (format "Select according to `%s' (end with RET): "
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562 (or pages-directory-previous-regexp "regexp")))))))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
563
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 (if (equal regexp "")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
565 (setq regexp pages-directory-previous-regexp)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
566 (setq pages-directory-previous-regexp regexp))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
567
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 101086
diff changeset
568 (if (called-interactively-p 'interactive)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
569 (message "Creating directory for: %s "
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
570 (buffer-name)))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
571
46863
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
572 (let ((pages-target-buffer (current-buffer))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 (pages-directory-buffer
5311
da52825a3880 (pages-copy-header-and-position): Call end-of-line, not forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 5021
diff changeset
574 (concat pages-directory-prefix " " (buffer-name)))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
575 (linenum 1)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
576 (pages-buffer-original-position (point))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
577 (pages-buffer-original-page 0))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
578
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
579 ;; `with-output-to-temp-buffer' binds the value of the variable
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
580 ;; `standard-output' to the buffer named as its first argument,
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
581 ;; but does not switch to that buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
582 (with-output-to-temp-buffer pages-directory-buffer
105813
df4934f25eef * textmodes/two-column.el (2C-split):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105372
diff changeset
583 (with-current-buffer standard-output
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
584 (pages-directory-mode)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
585 (insert
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
586 "==== Pages Directory: use `C-c C-c' to go to page under cursor. ====" ?\n)
46863
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
587 (setq pages-buffer pages-target-buffer)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
588 (setq pages-pos-list nil))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
589
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
590 (if pages-list-all-headers-p
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
591
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
592 ;; 1. If no prefix argument, list all headers
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
593 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
594 (goto-char (point-min))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
595
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
596 ;; (a) Point is at beginning of buffer; but the first
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
597 ;; page may not begin with a page-delimiter
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
598 (save-restriction
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
599 ;; If page delimiter is at beginning of buffer, skip it
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
600 (if (and (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
601 (re-search-forward page-delimiter nil t))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
602 (= 1 (match-beginning 0)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
603 (goto-char (match-end 0)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
604 (narrow-to-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
605 (pages-copy-header-and-position count-lines-p))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
606
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
607 ;; (b) Search within pages buffer for next page-delimiter
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
608 (while (re-search-forward page-delimiter nil t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
609 (pages-copy-header-and-position count-lines-p)))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
610
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
611 ;; 2. Else list headers whose pages match regexp.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
612 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
613 ;; REMOVED save-restriction AND widen FROM HERE
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
614 (goto-char (point-min))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
615
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
616 ;; (a) Handle first page
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
617 (save-restriction
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
618 (narrow-to-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
619 ;; search for selection regexp
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
620 (if (save-excursion (re-search-forward regexp nil t))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
621 (pages-copy-header-and-position count-lines-p)))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
622
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
623 ;; (b) Search for next page-delimiter
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
624 (while (re-search-forward page-delimiter nil t)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
625 (save-restriction
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
626 (narrow-to-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
627 ;; search for selection regexp
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
628 (if (save-excursion (re-search-forward regexp nil t))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
629 (pages-copy-header-and-position count-lines-p)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
630 )))))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
631
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
632 (set-buffer standard-output)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
633 ;; Put positions in increasing order to go with buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
634 (setq pages-pos-list (nreverse pages-pos-list))
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 101086
diff changeset
635 (if (called-interactively-p 'interactive)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
636 (message "%d matching lines in: %s"
46863
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
637 (length pages-pos-list) (buffer-name pages-target-buffer))))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
638 (pop-to-buffer pages-directory-buffer)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
639 (sit-for 0) ; otherwise forward-line fails if N > window height.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
640 (forward-line (if (= 0 pages-buffer-original-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
641 1
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
642 pages-buffer-original-page))))
95621
3e8dd23c12aa Remove unnecessary eval-when-compile.
Glenn Morris <rgm@gnu.org>
parents: 94670
diff changeset
643
3e8dd23c12aa Remove unnecessary eval-when-compile.
Glenn Morris <rgm@gnu.org>
parents: 94670
diff changeset
644 (defvar pages-buffer-original-position)
3e8dd23c12aa Remove unnecessary eval-when-compile.
Glenn Morris <rgm@gnu.org>
parents: 94670
diff changeset
645 (defvar pages-buffer-original-page)
3e8dd23c12aa Remove unnecessary eval-when-compile.
Glenn Morris <rgm@gnu.org>
parents: 94670
diff changeset
646 (defvar pages-buffer-original-page)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
647
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
648 (defun pages-copy-header-and-position (count-lines-p)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
649 "Copy page header and its position to the Pages Directory.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
650 Only arg non-nil, count lines in page and insert before header.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
651 Used by `pages-directory' function."
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
652
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
653 (let (position line-count)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
654
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
655 (if count-lines-p
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
656 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
657 (save-restriction
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
658 (narrow-to-page)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
659 (setq line-count (count-lines (point-min) (point-max))))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
660
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
661 ;; Keep track of page for later cursor positioning
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
662 (if (<= (point) pages-buffer-original-position)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
663 (setq pages-buffer-original-page
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
664 (1+ pages-buffer-original-page)))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
665
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
666 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
667 ;; go to first non-blank char after the page-delimiter
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
668 (skip-chars-forward " \t\n")
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
669 ;; set the marker here; this the place to which the
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
670 ;; `pages-directory-goto' command will go
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
671 (setq position (make-marker))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
672 (set-marker position (point))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
673 (let ((start (point))
23957
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
674 (end (save-excursion (end-of-line) (point)))
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
675 inserted-at)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
676 ;; change to directory buffer
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
677 (set-buffer standard-output)
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
678 ;; record page position
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
679 (setq pages-pos-list (cons position pages-pos-list))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
680 ;; insert page header
23957
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
681 (setq inserted-at (point))
46863
28ae6b9b086e (pages-target-buffer): Add defvar. Renamed from target-buffer.
Richard M. Stallman <rms@gnu.org>
parents: 46847
diff changeset
682 (insert-buffer-substring pages-target-buffer start end)
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
683 (add-text-properties inserted-at (point)
38082
b1c18f0dd970 (pages-copy-header-and-position): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 25329
diff changeset
684 '(mouse-face highlight
b1c18f0dd970 (pages-copy-header-and-position): Add help-echo to mouse-highlighted text.
Eli Zaretskii <eliz@gnu.org>
parents: 25329
diff changeset
685 help-echo "mouse-2: go to this page"))
23965
8a2363657bcc Fix typo.
Markus Rost <rost@math.uni-bielefeld.de>
parents: 23957
diff changeset
686 (put-text-property inserted-at (point) 'rear-nonsticky 'highlight))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
687
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
688 (if count-lines-p
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
689 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
690 (beginning-of-line)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
691 (insert (format "%3d: " line-count))))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
692
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
693 (terpri))
5311
da52825a3880 (pages-copy-header-and-position): Call end-of-line, not forward-line.
Richard M. Stallman <rms@gnu.org>
parents: 5021
diff changeset
694 (end-of-line 1)))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
695
46847
b1f5929aa675 (pages-directory-mode): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 39895
diff changeset
696 (defun pages-directory-mode ()
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
697 "Mode for handling the pages-directory buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
698
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
699 Move point to one of the lines in this buffer, then use \\[pages-directory-goto] to go
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
700 to the same line in the pages buffer."
46847
b1f5929aa675 (pages-directory-mode): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 39895
diff changeset
701
b1f5929aa675 (pages-directory-mode): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 39895
diff changeset
702 (kill-all-local-variables)
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
703 (use-local-map pages-directory-mode-map)
46847
b1f5929aa675 (pages-directory-mode): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 39895
diff changeset
704 (setq major-mode 'pages-directory-mode)
b1f5929aa675 (pages-directory-mode): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents: 39895
diff changeset
705 (setq mode-name "Pages-Directory")
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
706 (make-local-variable 'pages-buffer)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
707 (make-local-variable 'pages-pos-list)
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
708 (make-local-variable 'pages-directory-buffer-narrowing-p)
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
709 (run-mode-hooks 'pages-directory-mode-hook))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
710
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
711 (defun pages-directory-goto ()
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
712 "Go to the corresponding line in the pages buffer."
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
713
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
714 ;;; This function is mostly a copy of `occur-mode-goto-occurrence'
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
715
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
716 (interactive)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
717 (if (or (not pages-buffer)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
718 (not (buffer-name pages-buffer)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
719 (progn
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
720 (setq pages-buffer nil
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
721 pages-pos-list nil)
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 38082
diff changeset
722 (error "Buffer in which pages were found is deleted")))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
723 (beginning-of-line)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
724 (let* ((pages-number (1- (count-lines (point-min) (point))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
725 (pos (nth pages-number pages-pos-list))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
726 (end-of-directory-p (eobp))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
727 (narrowing-p pages-directory-buffer-narrowing-p))
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
728 (pop-to-buffer pages-buffer)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
729 (widen)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
730 (if end-of-directory-p
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
731 (goto-char (point-max))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
732 (goto-char (marker-position pos)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
733 (if narrowing-p (narrow-to-page))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
734
23957
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
735 (defun pages-directory-goto-with-mouse (event)
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
736 "Go to the corresponding line under the mouse pointer in the pages buffer."
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
737 (interactive "e")
105813
df4934f25eef * textmodes/two-column.el (2C-split):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105372
diff changeset
738 (with-current-buffer (window-buffer (posn-window (event-end event)))
23957
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
739 (save-excursion
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
740 (goto-char (posn-point (event-end event)))
71fe29ccef4c Added mouse-selection feature for pages directory buffer.
Richard M. Stallman <rms@gnu.org>
parents: 17436
diff changeset
741 (pages-directory-goto))))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
742
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
743 ;;; The `pages-directory-for-addresses' function and ancillary code
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
744
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
745 (defun pages-directory-for-addresses (&optional filename)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
746 "Find addresses file and display its directory.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
747 By default, create and display directory of `pages-addresses-file-name'.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
748 Optional argument is FILENAME. In interactive use, with prefix
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
749 argument, prompt for file name and provide completion.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
750
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
751 Move point to one of the lines in the displayed directory,
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
752 then use \\[pages-directory-goto] to go to the same line
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
753 in the addresses buffer.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
754
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
755 If pages-directory-for-addresses-goto-narrowing-p is non-nil,
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
756 `pages-directory-goto' narrows addresses buffer to entry.
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
757
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
758 If pages-directory-for-addresses-buffer-keep-windows-p is nil,
49599
5ade352e8d1c Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46863
diff changeset
759 this command deletes other windows when it displays the addresses
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
760 directory."
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
761
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
762 (interactive
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
763 (list (if current-prefix-arg
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
764 (read-file-name "Filename: " pages-addresses-file-name))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
765
105372
bd2966850aac Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents: 101086
diff changeset
766 (if (called-interactively-p 'interactive)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
767 (message "Creating directory for: %s "
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
768 (or filename pages-addresses-file-name)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
769 (if (file-exists-p (or filename pages-addresses-file-name))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
770 (progn
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
771 (set-buffer
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
772 (find-file-noselect
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
773 (expand-file-name
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
774 (or filename pages-addresses-file-name))))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
775 (widen)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
776 (pages-directory t nil nil)
71318
536f9f80a99d Including `pages-directory-address-mode' results in the message
Robert J. Chassell <bob@rattlesnake.com>
parents: 68648
diff changeset
777 ;; by RJC, 2006 Jun 11: including this causes failure; it results in
536f9f80a99d Including `pages-directory-address-mode' results in the message
Robert J. Chassell <bob@rattlesnake.com>
parents: 68648
diff changeset
778 ;; the message "Buffer in which pages were found is deleted"
536f9f80a99d Including `pages-directory-address-mode' results in the message
Robert J. Chassell <bob@rattlesnake.com>
parents: 68648
diff changeset
779 ;; (pages-directory-address-mode)
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
780 (setq pages-directory-buffer-narrowing-p
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
781 pages-directory-for-addresses-goto-narrowing-p)
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
782 (or pages-directory-for-addresses-buffer-keep-windows-p
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
783 (delete-other-windows))
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
784 (save-excursion
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
785 (goto-char (point-min))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
786 (delete-region (point) (save-excursion (end-of-line) (point)))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
787 (insert
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
788 "=== Address List Directory: use `C-c C-c' to go to page under cursor. ===")
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
789 (set-buffer-modified-p nil)
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
790 ))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
791 (error "No addresses file found!")))
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
792
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
793 (define-derived-mode pages-directory-address-mode pages-directory-mode
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
794 "Addresses Directory"
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
795 "Mode for handling the Addresses Directory buffer.
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
796
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
797 Move point to one of the lines in this buffer,
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
798 then use \\[pages-directory-goto] to go
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
799 to the same line in the pages buffer."
49701
77c73732b535 (pages-directory-mode-map): New.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 49599
diff changeset
800 :syntax-table nil)
235
c7cad852d5b4 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
801
5021
47afb35f4968 Revise documentation. Add `provide'.
Richard M. Stallman <rms@gnu.org>
parents: 3591
diff changeset
802 (provide 'page-ext)
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49701
diff changeset
803
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 79719
diff changeset
804 ;; arch-tag: 2f311550-c6e0-4458-9c12-7f039c058bdb
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 38082
diff changeset
805 ;;; page-ext.el ends here