1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/commits/2b8edd304c2b/
Changeset: 2b8edd304c2b
User: kehoea
Date: 2013-08-05 14:34:27
Summary: Avoid throwing an error with misc-user events in isearch-pre-command-hook.
lisp/ChangeLog addition:
2013-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* isearch-mode.el (isearch-pre-command-hook):
If this function is called and (this-command-keys) contains
misc-user events, #'key-binding throws an error.
Eddie Corns and Alex Belits describe this happening in tracker
issue 336, and we can avoid this by catching the error and
handling the misc-user event in the same way that #'dispatch-event
does.
I haven't reproduced the actual error they describe, and welcome
testing to make sure it's gone.
Thank you Eddie, thank you Alex!
Affected #: 2 files
diff -r 66d2f63df75f970d8a4ee919c5fc612cc2501720 -r
2b8edd304c2b820bddca2ede4e40cc6191ab2b84 lisp/ChangeLog
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,16 @@
+2013-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * isearch-mode.el (isearch-pre-command-hook):
+ If this function is called and (this-command-keys) contains
+ misc-user events, #'key-binding throws an error.
+ Eddie Corns and Alex Belits describe this happening in tracker
+ issue 336, and we can avoid this by catching the error and
+ handling the misc-user event in the same way that #'dispatch-event
+ does.
+ I haven't reproduced the actual error they describe, and welcome
+ testing to make sure it's gone.
+ Thank you Eddie, thank you Alex!
+
2013-08-05 Aidan Kehoe <kehoea(a)parhasard.net>
* behavior.el:
diff -r 66d2f63df75f970d8a4ee919c5fc612cc2501720 -r
2b8edd304c2b820bddca2ede4e40cc6191ab2b84 lisp/isearch-mode.el
--- a/lisp/isearch-mode.el
+++ b/lisp/isearch-mode.el
@@ -1579,7 +1579,28 @@
;; FSF does similar magic in `isearch-other-meta-char', which
;; is horribly complex. I *hope* what we do works in all
;; cases.
- (setq this-command (key-binding (this-command-keys))))
+ (setq this-command
+ (condition-case nil
+ (key-binding (this-command-keys))
+ (wrong-type-argument
+ ;; #'key-binding didn't like one of the events --> it's
+ ;; probably a misc-user object, repeat what
+ ;; #'dispatch-event does for this case.
+ (let ((this-command-keys (this-command-keys))
+ event-function)
+ (when (and (> (length this-command-keys) 0)
+ (misc-user-event-p (aref this-command-keys 0)))
+ (setq event-function
+ (event-function (aref this-command-keys 0)))
+ (case event-function
+ (call-interactively
+ (event-object (aref this-command-keys 0)))
+ (eval
+ `(lambda nil (interactive)
+ ,(event-object (aref this-command-keys 0))))
+ (otherwise
+ ;; Scrollbar command or the like.
+ (and (symbolp event-function) event-function)))))))))
(t
(labels
((isearch-maybe-frob-keyboard-macros ()
Repository URL:
https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches