GNU bug report logs -
#15200
isearch-other-meta-char and shift
Previous Next
Reported by: Juri Linkov <juri <at> jurta.org>
Date: Tue, 27 Aug 2013 16:30:02 UTC
Severity: normal
Merged with 15383,
15544
Found in version 24.3.50
Done: Juri Linkov <juri <at> jurta.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#15200: isearch-other-meta-char and shift
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 15200 <at> debbugs.gnu.org.
--
15200: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15200
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
>> (lookup-key isearch-mode-map (kbd "C-u C-l")) => 1
>> (lookup-key isearch-mode-map (kbd "C-u C-w")) => 1
>
>> both return 1.
>
> OK, don't worry about that: the fix needs to be elsewhere (I happen to
> have a work-in-progress patch which fixes that problem).
>
> So, I think you can go ahead and install your patch.
> And please make a bug-report for the C-u C-w problem, so we don't forget
> about it.
I installed the patch (with a FIXME comment) and reported a new bug#15568.
[Message part 3 (message/rfc822, inline)]
There is a problem in `isearch-other-meta-char' with shifted characters.
Typing <S-kp-0> exits Isearch instead of adding 0 to the search string.
A possible fix is to handle shifted kp-numbers like
shifted control characters are handled in the second
`cond' branch of `isearch-other-meta-char':
=== modified file 'lisp/isearch.el'
--- lisp/isearch.el 2013-07-05 20:15:32 +0000
+++ lisp/isearch.el 2013-08-27 16:27:45 +0000
@@ -2550,6 +2606,16 @@ (defun isearch-other-meta-char (&optiona
(lookup-key local-function-key-map key)))
(while keylist
(setq key (car keylist))
+ ;; Handle an undefined shifted printing character
+ ;; by downshifting it if that makes it printing.
+ ;; (As read-key-sequence would normally do,
+ ;; if we didn't have a default definition.)
+ (if (and (integerp key)
+ (memq 'shift (event-modifiers key))
+ (>= key (+ ?\s (- ?\S-a ?a)))
+ (/= key (+ 127 (- ?\S-a ?a)))
+ (< key (+ 256 (- ?\S-a ?a))))
+ (setq key (- key (- ?\S-a ?a))))
;; If KEY is a printing char, we handle it here
;; directly to avoid the input method and keyboard
;; coding system translating it.
This bug report was last modified 11 years and 279 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.