From: Alan Mackenzie <acm@muc.de>
To: Drew Adams <drew.adams@oracle.com>
Cc: emacs-devel@gnu.org
Subject: Re: `isearch-allow-scroll' - a misnomer and a bad design
Date: Sun, 11 Sep 2011 17:30:12 +0000 [thread overview]
Message-ID: <20110911173012.GA3088@acm.acm> (raw)
In-Reply-To: <3C4B7E318EB04AE4B7DB9FD0E4C67629@us.oracle.com>
Hi, Drew.
On Sun, Sep 11, 2011 at 09:54:17AM -0700, Drew Adams wrote:
> > > I would like to see `C-u' passed through - that's the main point.
> > > Either systematically or optionally, but if optionally then
> > > separately from allowing scrolling.
> > Here's a better patch. I've tested it more than the previous attempt.
> Thank you, Alan. Seems to work.
Great stuff!
> Even works with a sequence such as `C-1 C-- C-2', which passes -12 as it should,
> but which is relatively unknown. I tested this case because I noticed that you
> did not include `universal-argument-minus' in your test. But that is covered OK
> anyway, I guess because of the default ([t]) binding for
> `universal-argument-other-key'.
`univeral-argument-minus' isn't used anymore. The C-- is now handled by
`negative-argument'.
> Can this patch please be installed? Or are there people who prefer that `C-u'
> exit Isearch? If there are, then can we please have a user option for this
> choice?
Here's another version of the patch, this time with
`isearch-allow-prefix'. Its doc string isn't all that great; perhaps you
can improve it.
As for installing it, it's fine by me, but you'd have to negotiate with
Stefan, since we're in feature freeze. Before installing, there really
ought to be a mention of the feature in the Emacs manual.
As a matter of interest, the code does assume scrolling, sort of. After
a "scrolling command" the code checks that the search string is within
the window, and scrolls it back in if it isn't.
> Thx.
*** isearch.el 2011-09-04 15:31:05.000000000 +0000
--- isearch.100911.el 2011-09-11 17:14:27.000000000 +0000
***************
*** 1817,1822 ****
--- 1817,1830 ----
:type 'boolean
:group 'isearch)
+ (defcustom isearch-allow-prefix nil
+ "Whether prefix arguments are allowed during incremental search.
+ If non-nil, entering a prefix argument will not terminate the
+ search. This option is ignored \(presumed t) when
+ `isearch-allow-scroll' is set."
+ :type 'boolean
+ :group 'isearch)
+
(defun isearch-string-out-of-window (isearch-point)
"Test whether the search string is currently outside of the window.
Return nil if it's completely visible, or if point is visible,
***************
*** 1966,1976 ****
(apply 'isearch-unread keylist)
(isearch-edit-string))
;; Handle a scrolling function.
! ((and isearch-allow-scroll
! (progn (setq key (isearch-reread-key-sequence-naturally keylist))
! (setq keylist (listify-key-sequence key))
! (setq main-event (aref key 0))
! (setq scroll-command (isearch-lookup-scroll-key key))))
;; From this point onwards, KEY, KEYLIST and MAIN-EVENT hold a
;; complete key sequence, possibly as modified by function-key-map,
;; not merely the one or two event fragment which invoked
--- 1974,1991 ----
(apply 'isearch-unread keylist)
(isearch-edit-string))
;; Handle a scrolling function.
! ((progn
! (setq key (isearch-reread-key-sequence-naturally keylist)
! keylist (listify-key-sequence key)
! main-event (aref key 0))
! (or (and isearch-allow-scroll
! (setq scroll-command (isearch-lookup-scroll-key key)))
! (and isearch-allow-prefix
! (let (overriding-terminal-local-map)
! (setq scroll-command (key-binding key))
! (memq scroll-command
! '(universal-argument
! negative-argument digit-argument))))))
;; From this point onwards, KEY, KEYLIST and MAIN-EVENT hold a
;; complete key sequence, possibly as modified by function-key-map,
;; not merely the one or two event fragment which invoked
--
Alan Mackenzie (Nuremberg, Germany).
next prev parent reply other threads:[~2011-09-11 17:30 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-09 20:38 `isearch-allow-scroll' - a misnomer and a bad design Drew Adams
2011-09-09 21:52 ` Alan Mackenzie
2011-09-09 23:07 ` Drew Adams
2011-09-10 0:58 ` Stefan Monnier
2011-09-10 7:48 ` Drew Adams
2011-09-10 11:28 ` Alan Mackenzie
2011-09-10 16:44 ` Drew Adams
2011-09-10 11:47 ` Juri Linkov
2011-09-10 12:13 ` Alan Mackenzie
2011-09-10 2:03 ` Stephen J. Turnbull
2011-09-10 11:10 ` Alan Mackenzie
2011-09-10 16:43 ` Drew Adams
2011-09-10 19:04 ` Alan Mackenzie
2011-09-10 20:22 ` PJ Weisberg
2011-09-10 23:06 ` Stephen J. Turnbull
2011-09-11 0:47 ` Drew Adams
2011-09-11 10:39 ` Alan Mackenzie
2011-09-11 16:54 ` Drew Adams
2011-09-11 17:30 ` Alan Mackenzie [this message]
2011-09-11 18:53 ` Drew Adams
2011-09-12 2:46 ` Richard Stallman
2011-09-12 9:36 ` Alan Mackenzie
2011-09-13 1:39 ` Richard Stallman
2011-09-13 14:27 ` Alan Mackenzie
2011-09-13 20:05 ` Richard Stallman
2011-09-13 21:04 ` Drew Adams
2011-09-13 22:52 ` Juri Linkov
2011-09-14 0:32 ` Daniel Colascione
2011-09-14 0:41 ` Drew Adams
2011-09-14 14:10 ` Richard Stallman
2011-09-14 14:35 ` PJ Weisberg
2011-09-15 4:11 ` Richard Stallman
2011-09-14 14:44 ` Drew Adams
2011-09-18 2:52 ` Richard Stallman
2011-09-19 19:08 ` chad
2011-09-20 15:16 ` Richard Stallman
2011-09-20 19:17 ` Michael Welsh Duggan
2011-09-20 19:59 ` Dani Moncayo
2011-09-21 1:22 ` Stefan Monnier
2011-09-21 14:51 ` Richard Stallman
2011-09-21 15:01 ` Dani Moncayo
2011-09-21 15:10 ` Drew Adams
2011-09-21 16:35 ` Stephen J. Turnbull
[not found] ` <E1R6Tii-0000zy-Jw@f!! encepost.gnu.org>
2011-09-21 20:48 ` Richard Stallman
2011-09-21 21:13 ` Drew Adams
2011-09-22 13:58 ` Richard Stallman
2011-10-08 21:13 ` Drew Adams
2011-09-22 5:33 ` Stephen J. Turnbull
2011-09-22 13:59 ` Richard Stallman
2011-09-22 10:35 ` Alan Mackenzie
2011-09-22 21:44 ` Richard Stallman
2011-09-22 22:23 ` PJ Weisberg
2011-09-23 12:30 ` Richard Stallman
2011-09-21 9:04 ` Alan Mackenzie
2011-09-21 9:27 ` Dani Moncayo
2011-09-21 9:29 ` chad
2011-09-21 13:22 ` Drew Adams
2011-09-21 14:50 ` Richard Stallman
2011-09-12 14:59 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110911173012.GA3088@acm.acm \
--to=acm@muc.de \
--cc=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.