summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorJuri Linkov <juri@jurta.org>2010-04-14 03:43:54 +0300
committerJuri Linkov <juri@jurta.org>2010-04-14 03:43:54 +0300
commit7b05466ff6721988517519081078b19fffeecd09 (patch)
tree46a9ff6f927e99516677966da639ccb97442512b /lisp
parent3212974649ca9415a3a4a5197a169a0160a6b36f (diff)
downloademacs-7b05466ff6721988517519081078b19fffeecd09.tar.gz
Add variable scroll-error-top-bottom.
http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00403.html * simple.el (scroll-error-top-bottom): New defcustom. (scroll-up-command, scroll-down-command): Use it. Doc fix. * emulation/pc-select.el (pc-select-override-scroll-error): Obsolete in favor of `scroll-error-top-bottom'.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/emulation/pc-select.el3
-rw-r--r--lisp/simple.el30
3 files changed, 35 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 01bfbf55434..89d56ffd323 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,13 @@
2010-04-14 Juri Linkov <juri@jurta.org>
+ * simple.el (scroll-error-top-bottom): New defcustom.
+ (scroll-up-command, scroll-down-command): Use it. Doc fix.
+
+ * emulation/pc-select.el (pc-select-override-scroll-error):
+ Obsolete in favor of `scroll-error-top-bottom'.
+
+2010-04-14 Juri Linkov <juri@jurta.org>
+
* tutorial.el (tutorial--default-keys): Rebind `C-v' to
`scroll-up-command' and `M-v' to `scroll-down-command'.
diff --git a/lisp/emulation/pc-select.el b/lisp/emulation/pc-select.el
index 175999b6e37..529ba290cb8 100644
--- a/lisp/emulation/pc-select.el
+++ b/lisp/emulation/pc-select.el
@@ -93,6 +93,9 @@ text with these commands. If you set this variable to non-nil, these
errors are suppressed."
:type 'boolean
:group 'pc-select)
+(define-obsolete-variable-alias 'pc-select-override-scroll-error
+ 'scroll-error-top-bottom
+ "24.1")
(defcustom pc-select-selection-keys-only nil
"*Non-nil means only bind the basic selection keys when started.
diff --git a/lisp/simple.el b/lisp/simple.el
index 60fe6c875d2..34e31b10276 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4744,20 +4744,34 @@ This also turns on `word-wrap' in the buffer."
;;; of buffer at first key-press (instead moves to top/bottom
;;; of buffer).
+(defcustom scroll-error-top-bottom nil
+ "Move point to top/bottom of buffer before signalling a scrolling error.
+A value of nil means just signal an error if no more scrolling possible.
+A value of t means point moves to the beginning or the end of the buffer
+\(depending on scrolling direction) when no more scrolling possible.
+When point is already on that position, then signal an error."
+ :type 'boolean
+ :group 'scrolling
+ :version "24.1")
+
(defun scroll-up-command (&optional arg)
"Scroll text of selected window upward ARG lines; or near full screen if no ARG.
-If `scroll-up' cannot scroll window further, move cursor to the bottom line.
+If `scroll-error-top-bottom' is non-nil and `scroll-up' cannot
+scroll window further, move cursor to the bottom line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll downward.
If ARG is the atom `-', scroll downward by nearly full screen."
(interactive "^P")
(cond
- ((eq arg '-) (scroll-down-command nil))
+ ((null scroll-error-top-bottom)
+ (scroll-up arg))
+ ((eq arg '-)
+ (scroll-down-command nil))
((< (prefix-numeric-value arg) 0)
(scroll-down-command (- (prefix-numeric-value arg))))
((eobp)
- (scroll-up arg)) ; signal error
+ (scroll-up arg)) ; signal error
(t
(condition-case nil
(scroll-up arg)
@@ -4775,18 +4789,22 @@ If ARG is the atom `-', scroll downward by nearly full screen."
(defun scroll-down-command (&optional arg)
"Scroll text of selected window down ARG lines; or near full screen if no ARG.
-If `scroll-down' cannot scroll window further, move cursor to the top line.
+If `scroll-error-top-bottom' is non-nil and `scroll-down' cannot
+scroll window further, move cursor to the top line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll upward.
If ARG is the atom `-', scroll upward by nearly full screen."
(interactive "^P")
(cond
- ((eq arg '-) (scroll-up-command nil))
+ ((null scroll-error-top-bottom)
+ (scroll-down arg))
+ ((eq arg '-)
+ (scroll-up-command nil))
((< (prefix-numeric-value arg) 0)
(scroll-up-command (- (prefix-numeric-value arg))))
((bobp)
- (scroll-down arg)) ; signal error
+ (scroll-down arg)) ; signal error
(t
(condition-case nil
(scroll-down arg)