GNU bug report logs -
#20532
25.0.50; void-variable cursor-sensor-inhibit
Previous Next
Reported by: Kaushal <kaushal.modi <at> gmail.com>
Date: Fri, 8 May 2015 16:48:02 UTC
Severity: normal
Merged with 20516
Found in version 25.0.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Wed, 27 May 2015 12:18:20 -0400
with message-id <jwv8uca9eu7.fsf-monnier+emacsbugs <at> gnu.org>
and subject line Re: bug#20532: 25.0.50; void-variable cursor-sensor-inhibit
has caused the debbugs.gnu.org bug report #20532,
regarding 25.0.50; void-variable cursor-sensor-inhibit
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
20532: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20532
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Hi,
Lately, I have been facing this issue in the emacs built from master
branch. I haven't yet seen this error occur on emacs 24.4.
I see it happen now and then and haven't been able to consistently
reproduce it but here is the backtrace. I have not been able to create this
error on "emacs -Q".
I get this error when I am trying to quit isearch. I don't know if this
happens when I try to quit after I tried to search for a term that failed
to be found in the buffer or when I try to quit after a successful search
hit.
But once this started happening, repeated C-g hits keep on throwing this
error and I can't quit isearch.
Then the only way is to restart emacs.
Debugger entered--Lisp error: (void-variable cursor-sensor-inhibit)
isearch-done(t)
isearch-cancel()
isearch-abort()
funcall-interactively(isearch-abort)
#<subr call-interactively>(isearch-abort nil nil)
ad-Advice-call-interactively(#<subr call-interactively> isearch-abort nil
nil)
apply(ad-Advice-call-interactively #<subr call-interactively>
(isearch-abort nil nil))
call-interactively(isearch-abort nil nil)
command-execute(isearch-abort)
In GNU Emacs 25.0.50.2 (x86_64-unknown-linux-gnu, GTK+ Version 2.10.4)
of 2015-05-05 on ...
Windowing system distributor `The X.Org Foundation', version 11.0.60900000
System Description: Red Hat Enterprise Linux Client release 5.10 (Tikanga)
Configured using:
`configure --prefix=/home/kmodi/usr_local/apps/emacs/master
CPPFLAGS=-fgnu89-inline'
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE LIBOTF XFT ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Minor modes in effect:
global-auto-complete-mode: t
minibuffer-line-mode: t
guide-key-mode: t
desktop-save-mode: t
pdf-occur-global-minor-mode: t
global-anzu-mode: t
anzu-mode: t
recentf-mode: t
winner-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
projectile-global-mode: t
projectile-mode: t
global-page-break-lines-mode: t
keyfreq-autosave-mode: t
keyfreq-mode: t
diff-auto-refine-mode: t
ido-ubiquitous-mode: t
ido-vertical-mode: t
flx-ido-mode: t
global-hungry-delete-mode: t
hungry-delete-mode: t
volatile-highlights-mode: t
global-hi-lock-mode: t
hi-lock-mode: t
global-hardcore-mode: t
hardcore-mode: t
drag-stuff-global-mode: t
drag-stuff-mode: t
ido-everywhere: t
ace-window-display-mode: t
global-adaptive-wrap-prefix-mode: t
adaptive-wrap-prefix-mode: t
display-time-mode: t
popwin-mode: t
which-function-mode: t
shell-dirtrack-mode: t
global-modi-mode: t
modi-mode: t
override-global-mode: t
save-place-mode: t
show-paren-mode: t
delete-selection-mode: t
global-eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
buffer-read-only: t
column-number-mode: t
line-number-mode: t
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
>> Can you think of any reason why you might have started your search in
>> one buffer and ended it in another?
> This will happen by design if you use isearch to search across multiple
> files (i.e. multi-isearch), such as a sequence of ChangeLog.N files.
> (There may be other variables than cursor-sensor-inhibit that are also
> mishandled in this situation.)
I installed the patch below which should fix this.
Stefan
diff --git a/lisp/isearch.el b/lisp/isearch.el
index dc10502..5599ea5 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -932,12 +932,6 @@ convert the search string to a regexp used by regexp search functions."
(add-hook 'post-command-hook 'isearch-post-command-hook)
(add-hook 'mouse-leave-buffer-hook 'isearch-done)
(add-hook 'kbd-macro-termination-hook 'isearch-done)
- (make-local-variable 'cursor-sensor-inhibit)
- (unless (boundp 'cursor-sensor-inhibit)
- (setq cursor-sensor-inhibit nil))
- ;; Suspend things like cursor-intangible during Isearch so we can search even
- ;; within intangible text.
- (push 'isearch cursor-sensor-inhibit)
;; isearch-mode can be made modal (in the sense of not returning to
;; the calling function until searching is completed) by entering
@@ -949,10 +943,23 @@ convert the search string to a regexp used by regexp search functions."
;; Some high level utilities. Others below.
+(defvar isearch--current-buffer)
(defun isearch-update ()
"This is called after every isearch command to update the display.
The last thing it does is to run `isearch-update-post-hook'."
+ (unless (eq (current-buffer) isearch--current-buffer)
+ (when isearch--current-buffer
+ (with-current-buffer isearch--current-buffer
+ (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit))))
+ (setq isearch--current-buffer (current-buffer))
+ (make-local-variable 'cursor-sensor-inhibit)
+ (unless (boundp 'cursor-sensor-inhibit)
+ (setq cursor-sensor-inhibit nil))
+ ;; Suspend things like cursor-intangible during Isearch so we can search
+ ;; even within intangible text.
+ (push 'isearch cursor-sensor-inhibit))
+
(if (and (null unread-command-events)
(null executing-kbd-macro))
(progn
@@ -1026,7 +1033,9 @@ NOPUSH is t and EDIT is t."
(remove-hook 'mouse-leave-buffer-hook 'isearch-done)
(remove-hook 'kbd-macro-termination-hook 'isearch-done)
(setq isearch-lazy-highlight-start nil)
- (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit))
+ (with-current-buffer isearch--current-buffer
+ (setq isearch--current-buffer nil)
+ (setq cursor-sensor-inhibit (delq 'isearch cursor-sensor-inhibit)))
;; Called by all commands that terminate isearch-mode.
;; If NOPUSH is non-nil, we don't push the string on the search ring.
This bug report was last modified 10 years ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.