Mercurial > hg > xemacs-beta
diff lisp/replace.el @ 5686:c6b1500299a7
recenter-top-bottom synced from GNU and new default for C-l
Partial implementation of recenter-top-bottom. GNU has support for
scroll-margin that is not in XEmacs so that is left out.
lisp/ChangeLog:
2012-09-18 Mats Lidell <matsl@xemacs.org>
* window-xemacs.el (recenter-positions): New defcustom.
(recenter-top-bottom): New command.
(recenter-last-op): New defvar.
* replace.el (perform-replace): Let-bind recenter-last-op to nil.
For def=recenter, replace `recenter' with `recenter-top-bottom'
that is called with `this-command' and `last-command' let-bound to
`recenter-top-bottom'. When the last `def' was not `recenter',
set `recenter-last-op' to nil.
* keydefs.el (global-map): Make recenter-top-bottom new default
for C-l.
etc/ChangeLog:
2012-09-18 Mats Lidell <matsl@xemacs.org>
* TUTORIAL: Updated due to recenter-top-bottom
man/ChangeLog:
2012-09-18 Mats Lidell <matsl@xemacs.org>
* lispref/windows.texi (Vertical Scrolling): Added
recenter-top-bottom and recenter-positions
* xemacs/display.texi (Display): Rearranged and added
documentation due to new function recenter-top-bottom.
author | Mats Lidell <mats.lidell@cag.se> |
---|---|
date | Tue, 18 Sep 2012 08:58:28 +0200 |
parents | ac37a5f7e5be |
children | 0bddb59072b6 |
line wrap: on
line diff
--- a/lisp/replace.el Sun Sep 16 21:43:21 2012 +0100 +++ b/lisp/replace.el Tue Sep 18 08:58:28 2012 +0200 @@ -1,6 +1,6 @@ ;;; replace.el --- search and replace commands for XEmacs. -;; Copyright (C) 1985-7, 1992, 1994, 1997, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1985-7, 1992, 1994, 1997, 2003, 2012 Free Software Foundation, Inc. ;; Maintainer: XEmacs Development Team ;; Keywords: dumped, matching @@ -559,6 +559,7 @@ ;; stop. (limit nil) (match-again t) + (recenter-last-op nil) ; Start cycling order with initial position. ;; XEmacs addition (qr-case-fold-search (if (and case-fold-search search-caps-disable-folding) @@ -700,7 +701,12 @@ ((eq def 'skip) (setq done t)) ((eq def 'recenter) - (recenter nil)) + ;; `this-command' has the value `query-replace', + ;; so we need to bind it to `recenter-top-bottom' + ;; to allow it to detect a sequence of `C-l'. + (let ((this-command 'recenter-top-bottom) + (last-command 'recenter-top-bottom)) + (recenter-top-bottom))) ((eq def 'edit) (store-match-data (prog1 (match-data) @@ -724,6 +730,9 @@ (setq unread-command-events (cons event unread-command-events)) (setq done t)))) + (unless (eq def 'recenter) + ;; Reset recenter cycling order to initial position. + (setq recenter-last-op nil)) ;; Record previous position for ^ when we move on. ;; Change markers to numbers in the match data ;; since lots of markers slow down editing.