annotate lisp/emulation/tpu-extras.el @ 25976:8565fbac98d7

Use "pop3" as the POP service name on all platforms, instead of using "pop" on Unix and "pop3" on Windows NT. "pop3" has been the standard service name since RFC 1340 was published in July 1992, so I think it's safe to start using it by default.
author Gerd Moellmann <gerd@gnu.org>
date Sun, 10 Oct 1999 23:07:36 +0000
parents 4a3e3887c0dc
children a1f20ca97c0b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 ;;; tpu-extras.el --- Scroll margins and free cursor mode for TPU-edt
4524
3d55b6a74eec (tpu-search-internal): Changed variable
Richard M. Stallman <rms@gnu.org>
parents: 4503
diff changeset
2
11594
ddef149290ed Removed reference to tpu-gnu-emacs18-p.
Richard M. Stallman <rms@gnu.org>
parents: 7981
diff changeset
3 ;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Author: Rob Riepel <riepel@networking.stanford.edu>
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
5140
9cde7d7fea1f Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 4524
diff changeset
7 ;; Keywords: emulations
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8
4450
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
9 ;; This file is part of GNU Emacs.
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
10
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
11 ;; GNU Emacs is free software; you can redistribute it and/or modify
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
14 ;; any later version.
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15
4450
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
19 ;; GNU General Public License for more details.
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
20
325bc5407213 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 4421
diff changeset
21 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12687
diff changeset
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12687
diff changeset
23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 12687
diff changeset
24 ;; Boston, MA 02111-1307, USA.
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;; Commentary:
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27
12687
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
28 ;; Use the functions defined here to customize TPU-edt to your tastes by
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
29 ;; setting scroll margins and/or turning on free cursor mode. Here's an
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
30 ;; example for your .emacs file.
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
31
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
32 ;; (tpu-set-cursor-free) ; Set cursor free.
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
33 ;; (tpu-set-scroll-margins "10%" "15%") ; Set scroll margins.
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
34
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
35 ;; Scroll margins and cursor binding can be changed from within emacs using
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
36 ;; the following commands:
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
37
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
38 ;; tpu-set-scroll-margins or set scroll margins
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
39 ;; tpu-set-cursor-bound or set cursor bound
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
40 ;; tpu-set-cursor-free or set cursor free
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
41
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
42 ;; Additionally, Gold-F toggles between bound and free cursor modes.
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
43
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
44 ;; Note that switching out of free cursor mode or exiting TPU-edt while in
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
45 ;; free cursor mode strips trailing whitespace from every line in the file.
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
46
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
47
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
48 ;;; Details:
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
49
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;; The functions contained in this file implement scroll margins and free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;; cursor mode. The following keys and commands are affected.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;; key/command function scroll cursor
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ;; Up-Arrow previous line x x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 ;; Down-Arrow next line x x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 ;; Right-Arrow next character x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 ;; Left-Arrow previous character x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 ;; KP0 next or previous line x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 ;; KP7 next or previous page x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 ;; KP8 next or previous screen x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 ;; KP2 next or previous end-of-line x x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 ;; Control-e current end-of-line x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 ;; Control-h previous beginning-of-line x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 ;; Next Scr next screen x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 ;; Prev Scr previous screen x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 ;; Search find a string x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 ;; Replace find and replace a string x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 ;; Newline insert a newline x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 ;; Paragraph next or previous paragraph x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 ;; Auto-Fill break lines on spaces x
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 ;; These functions are not part of the base TPU-edt for the following
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 ;; reasons:
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 ;; Free cursor mode is implemented with the emacs picture-mode functions.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 ;; These functions support moving the cursor all over the screen, however,
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 ;; when the cursor is moved past the end of a line, spaces or tabs are
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 ;; appended to the line - even if no text is entered in that area. In
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 ;; order for a free cursor mode to work exactly like TPU/edt, this trailing
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 ;; whitespace needs to be dealt with in every function that might encounter
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 ;; it. Such global changes are impractical, however, free cursor mode is
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 ;; too valuable to abandon completely, so it has been implemented in those
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 ;; functions where it serves best.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 ;; The implementation of scroll margins adds overhead to previously
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 ;; simple and often used commands. These commands are now responsible
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 ;; for their normal operation and part of the display function. There
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 ;; is a possibility that this display overhead could adversely affect the
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 ;; performance of TPU-edt on slower computers. In order to support the
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 ;; widest range of computers, scroll margin support is optional.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92
12687
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
93 ;; It's actually not known whether the overhead associated with scroll
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
94 ;; margin support is significant. If you find that it is, please send
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 ;; a note describing the extent of the performance degradation. Be sure
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 ;; to include a description of the platform where you're running TPU-edt.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 ;; Send your note to the address provided by Gold-V.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 ;; Even with these differences and limitations, these functions implement
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 ;; important aspects of the real TPU/edt. Those who miss free cursor mode
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 ;; and/or scroll margins will appreciate these implementations.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 ;;; Code:
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105
7981
54e029bb5894 Require tpu-edt.
Richard M. Stallman <rms@gnu.org>
parents: 5187
diff changeset
106 ;;; Gotta have tpu-edt
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107
7981
54e029bb5894 Require tpu-edt.
Richard M. Stallman <rms@gnu.org>
parents: 5187
diff changeset
108 (require 'tpu-edt)
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 ;;; Customization variables
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112
21628
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
113 (defcustom tpu-top-scroll-margin 0
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 "*Scroll margin at the top of the screen.
21628
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
115 Interpreted as a percent of the current window size."
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
116 :type 'integer
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
117 :group 'tpu)
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
118 (defcustom tpu-bottom-scroll-margin 0
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 "*Scroll margin at the bottom of the screen.
21628
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
120 Interpreted as a percent of the current window size."
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
121 :type 'integer
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
122 :group 'tpu)
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123
21628
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
124 (defcustom tpu-backward-char-like-tpu t
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 "*If non-nil, in free cursor mode backward-char (left-arrow) works
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 just like TPU/edt. Otherwise, backward-char will move to the end of
21628
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
127 the previous line when starting from a line beginning."
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
128 :type 'boolean
4a3e3887c0dc Customize.
Stephen Eglen <stephen@gnu.org>
parents: 14169
diff changeset
129 :group 'tpu)
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 ;;; Global variables
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 (defvar tpu-cursor-free nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 "If non-nil, let the cursor roam free.")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 ;;; Hooks -- Set cursor free in picture mode.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 ;;; Clean up when writing a file from cursor free mode.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140
11594
ddef149290ed Removed reference to tpu-gnu-emacs18-p.
Richard M. Stallman <rms@gnu.org>
parents: 7981
diff changeset
141 (add-hook 'picture-mode-hook 'tpu-set-cursor-free)
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
143 (defun tpu-write-file-hook nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
144 "Eliminate whitespace at ends of lines, if the cursor is free."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
145 (if (and (buffer-modified-p) tpu-cursor-free) (picture-clean)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
147 (or (memq 'tpu-write-file-hook write-file-hooks)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
148 (setq write-file-hooks
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 (cons 'tpu-write-file-hook write-file-hooks)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
150
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152 ;;; Utility routines for implementing scroll margins
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
153
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 (defun tpu-top-check (beg lines)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 "Enforce scroll margin at the top of screen."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
156 (let ((margin (/ (* (window-height) tpu-top-scroll-margin) 100)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157 (cond ((< beg margin) (recenter beg))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 ((< (- beg lines) margin) (recenter margin)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
159
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 (defun tpu-bottom-check (beg lines)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 "Enforce scroll margin at the bottom of screen."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
162 (let* ((height (window-height))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 (margin (+ 1 (/ (* height tpu-bottom-scroll-margin) 100)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 ;; subtract 1 from height because it includes mode line
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165 (difference (- height margin 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 (cond ((> beg difference) (recenter beg))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 ((> (+ beg lines) difference) (recenter (- margin))))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 ;;; Movement by character
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 (defun tpu-forward-char (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173 "Move right ARG characters (left if ARG is negative)."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175 (if tpu-cursor-free (picture-forward-column num) (forward-char num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
177 (defun tpu-backward-char (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178 "Move left ARG characters (right if ARG is negative)."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 (cond ((not tpu-cursor-free)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 (backward-char num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182 (tpu-backward-char-like-tpu
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183 (picture-backward-column num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
184 ((bolp)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185 (backward-char 1)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 (picture-end-of-line)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187 (picture-backward-column (1- num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189 (picture-backward-column num))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
191
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
192 ;;; Movement by line
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 (defun tpu-next-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195 "Move to next line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 Prefix argument serves as a repeat count."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199 (if tpu-cursor-free (or (eobp) (picture-move-down num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200 (next-line-internal num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
201 (tpu-bottom-check beg num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
202 (setq this-command 'next-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204 (defun tpu-previous-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
205 "Move to previous line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
206 Prefix argument serves as a repeat count."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
207 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209 (if tpu-cursor-free (picture-move-up num) (next-line-internal (- num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210 (tpu-top-check beg num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
211 (setq this-command 'previous-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
213 (defun tpu-next-beginning-of-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
214 "Move to beginning of line; if at beginning, move to beginning of next line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215 Accepts a prefix argument for the number of lines to move."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
217 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
218 (backward-char 1)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
219 (forward-line (- 1 num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
220 (tpu-top-check beg num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
222 (defun tpu-next-end-of-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
223 "Move to end of line; if at end, move to end of next line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
224 Accepts a prefix argument for the number of lines to move."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
225 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
226 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227 (cond (tpu-cursor-free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
228 (let ((beg (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229 (if (< 1 num) (forward-line num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230 (picture-end-of-line)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
231 (if (<= (point) beg) (progn (forward-line) (picture-end-of-line)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
232 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
233 (forward-char)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
234 (end-of-line num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
235 (tpu-bottom-check beg num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
236
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
237 (defun tpu-previous-end-of-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
238 "Move EOL upward.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
239 Accepts a prefix argument for the number of lines to move."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
240 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
241 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
242 (cond (tpu-cursor-free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
243 (picture-end-of-line (- 1 num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
244 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
245 (end-of-line (- 1 num))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
246 (tpu-top-check beg num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
247
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
248 (defun tpu-current-end-of-line nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
249 "Move point to end of current line."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
250 (interactive)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251 (let ((beg (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
252 (if tpu-cursor-free (picture-end-of-line) (end-of-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253 (if (= beg (point)) (message "You are already at the end of a line."))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
254
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
255 (defun tpu-forward-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 "Move to beginning of next line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 Prefix argument serves as a repeat count."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260 (next-line-internal num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (tpu-bottom-check beg num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 (beginning-of-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264 (defun tpu-backward-line (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 "Move to beginning of previous line.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 Prefix argument serves as repeat count."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268 (let ((beg (tpu-current-line)))
12687
e7e04fe05a17 (tpu-backward-line): Only move to BOL if not already there.
Richard M. Stallman <rms@gnu.org>
parents: 11594
diff changeset
269 (or (bolp) (>= 0 num) (setq num (- num 1)))
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
270 (next-line-internal (- num))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271 (tpu-top-check beg num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272 (beginning-of-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
273
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 ;;; Movement by paragraph
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
276
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
277 (defun tpu-paragraph (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
278 "Move to the next paragraph in the current direction.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
279 A repeat count means move that many paragraphs."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
280 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 (let* ((left nil)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282 (beg (tpu-current-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 (height (window-height))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284 (top-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 (if (= 0 tpu-top-scroll-margin) 10 tpu-top-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 (bottom-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287 (if (= 0 tpu-bottom-scroll-margin) 15 tpu-bottom-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 (top-margin (/ (* height top-percent) 100))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 (bottom-up-margin (+ 1 (/ (* height bottom-percent) 100)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
290 (bottom-margin (max beg (- height bottom-up-margin 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 (top (save-excursion (move-to-window-line top-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
292 (bottom (save-excursion (move-to-window-line bottom-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 (far (save-excursion
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
294 (goto-char bottom) (forward-line (- height 2)) (point))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295 (cond (tpu-advance
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 (tpu-next-paragraph num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297 (cond((> (point) far)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 (setq left (save-excursion (forward-line height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 (if (= 0 left) (recenter top-margin)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 (recenter (- left bottom-up-margin))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302 (and (> (point) bottom) (recenter bottom-margin)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 (tpu-previous-paragraph num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 (and (< (point) top) (recenter (min beg top-margin)))))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
306
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 ;;; Movement by page
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 (defun tpu-page (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 "Move to the next page in the current direction.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312 A repeat count means move that many pages."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 (let* ((left nil)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315 (beg (tpu-current-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 (height (window-height))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317 (top-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
318 (if (= 0 tpu-top-scroll-margin) 10 tpu-top-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
319 (bottom-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
320 (if (= 0 tpu-bottom-scroll-margin) 15 tpu-bottom-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
321 (top-margin (/ (* height top-percent) 100))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
322 (bottom-up-margin (+ 1 (/ (* height bottom-percent) 100)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 (bottom-margin (max beg (- height bottom-up-margin 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 (top (save-excursion (move-to-window-line top-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
325 (bottom (save-excursion (move-to-window-line bottom-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 (far (save-excursion
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327 (goto-char bottom) (forward-line (- height 2)) (point))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 (cond (tpu-advance
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 (forward-page num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 (cond((> (point) far)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331 (setq left (save-excursion (forward-line height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 (if (= 0 left) (recenter top-margin)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 (recenter (- left bottom-up-margin))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335 (and (> (point) bottom) (recenter bottom-margin)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 (backward-page num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 (and (< (point) top) (recenter (min beg top-margin)))))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
341 ;;; Scrolling
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 (defun tpu-scroll-window-down (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 "Scroll the display down to the next section.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 A repeat count means scroll that many sections."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347 (let* ((beg (tpu-current-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 (height (1- (window-height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 (lines (* num (/ (* height tpu-percent-scroll) 100))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 (next-line-internal (- lines))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 (tpu-top-check beg lines)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
352
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 (defun tpu-scroll-window-up (num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 "Scroll the display up to the next section.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355 A repeat count means scroll that many sections."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 (let* ((beg (tpu-current-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 (height (1- (window-height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 (lines (* num (/ (* height tpu-percent-scroll) 100))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 (next-line-internal lines)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361 (tpu-bottom-check beg lines)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
364 ;;; Replace the TPU-edt internal search function
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
366 (defun tpu-search-internal (pat &optional quiet)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
367 "Search for a string or regular expression."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
368 (let* ((left nil)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369 (beg (tpu-current-line))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
370 (height (window-height))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 (top-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 (if (= 0 tpu-top-scroll-margin) 10 tpu-top-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
373 (bottom-percent
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
374 (if (= 0 tpu-bottom-scroll-margin) 15 tpu-bottom-scroll-margin))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
375 (top-margin (/ (* height top-percent) 100))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
376 (bottom-up-margin (+ 1 (/ (* height bottom-percent) 100)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
377 (bottom-margin (max beg (- height bottom-up-margin 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
378 (top (save-excursion (move-to-window-line top-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379 (bottom (save-excursion (move-to-window-line bottom-margin) (point)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (far (save-excursion
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
381 (goto-char bottom) (forward-line (- height 2)) (point))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
382 (tpu-search-internal-core pat quiet)
4524
3d55b6a74eec (tpu-search-internal): Changed variable
Richard M. Stallman <rms@gnu.org>
parents: 4503
diff changeset
383 (if tpu-searching-forward
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 (cond((> (point) far)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 (setq left (save-excursion (forward-line height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 (if (= 0 left) (recenter top-margin)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 (recenter (- left bottom-up-margin))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388 (t
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 (and (> (point) bottom) (recenter bottom-margin))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 (and (< (point) top) (recenter (min beg top-margin))))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 ;;; Replace the newline, newline-and-indent, and do-auto-fill functions
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 (or (fboundp 'tpu-old-newline)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 (fset 'tpu-old-newline (symbol-function 'newline)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 (or (fboundp 'tpu-old-do-auto-fill)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 (fset 'tpu-old-do-auto-fill (symbol-function 'do-auto-fill)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 (or (fboundp 'tpu-old-newline-and-indent)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 (fset 'tpu-old-newline-and-indent (symbol-function 'newline-and-indent)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403 (defun newline (&optional num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 "Insert a newline. With arg, insert that many newlines.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 In Auto Fill mode, can break the preceding line if no numeric arg.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
406 This is the TPU-edt version that respects the bottom scroll margin."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 (interactive "p")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409 (or num (setq num 1))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 (tpu-old-newline num)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 (tpu-bottom-check beg num)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (defun newline-and-indent nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 "Insert a newline, then indent according to major mode.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415 Indentation is done using the current indent-line-function.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 In programming language modes, this is the same as TAB.
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 In some text modes, where TAB inserts a tab, this indents
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418 to the specified left-margin column. This is the TPU-edt
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
419 version that respects the bottom scroll margin."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
420 (interactive)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 (tpu-old-newline-and-indent)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423 (tpu-bottom-check beg 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425 (defun do-auto-fill nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 "TPU-edt version that respects the bottom scroll margin."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 (let ((beg (tpu-current-line)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 (tpu-old-do-auto-fill)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 (tpu-bottom-check beg 1)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 ;;; Function to set scroll margins
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433
5187
3c6f2b0ecf8b Remove free/bound cursor and scroll
Richard M. Stallman <rms@gnu.org>
parents: 5140
diff changeset
434 ;;;###autoload
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435 (defun tpu-set-scroll-margins (top bottom)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 "Set scroll margins."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 (interactive
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
438 "sEnter top scroll margin (N lines or N%% or RETURN for current value): \
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 \nsEnter bottom scroll margin (N lines or N%% or RETURN for current value): ")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
440 ;; set top scroll margin
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
441 (or (string= top "")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442 (if (string= "%" (substring top -1))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443 (setq tpu-top-scroll-margin (string-to-int top))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 (setq tpu-top-scroll-margin
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 (/ (1- (+ (* (string-to-int top) 100) (window-height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (window-height)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 ;; set bottom scroll margin
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448 (or (string= bottom "")
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
449 (if (string= "%" (substring bottom -1))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
450 (setq tpu-bottom-scroll-margin (string-to-int bottom))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
451 (setq tpu-bottom-scroll-margin
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
452 (/ (1- (+ (* (string-to-int bottom) 100) (window-height)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
453 (window-height)))))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
454 ;; report scroll margin settings if running interactively
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455 (and (interactive-p)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 (message "Scroll margins set. Top = %s%%, Bottom = %s%%"
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 tpu-top-scroll-margin tpu-bottom-scroll-margin)))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 ;;; Functions to set cursor bound or free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461
5187
3c6f2b0ecf8b Remove free/bound cursor and scroll
Richard M. Stallman <rms@gnu.org>
parents: 5140
diff changeset
462 ;;;###autoload
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
463 (defun tpu-set-cursor-free nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 "Allow the cursor to move freely about the screen."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465 (interactive)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (setq tpu-cursor-free t)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
467 (substitute-key-definition 'tpu-set-cursor-free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
468 'tpu-set-cursor-bound
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469 GOLD-map)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 (message "The cursor will now move freely about the screen."))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471
5187
3c6f2b0ecf8b Remove free/bound cursor and scroll
Richard M. Stallman <rms@gnu.org>
parents: 5140
diff changeset
472 ;;;###autoload
4421
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 (defun tpu-set-cursor-bound nil
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 "Constrain the cursor to the flow of the text."
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 (interactive)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
476 (picture-clean)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
477 (setq tpu-cursor-free nil)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
478 (substitute-key-definition 'tpu-set-cursor-bound
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
479 'tpu-set-cursor-free
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
480 GOLD-map)
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
481 (message "The cursor is now bound to the flow of your text."))
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
482
95bb7e28d761 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
483 ;;; tpu-extras.el ends here