* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
@ 2008-08-15 22:20 Markus Triska
2008-08-16 4:12 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Markus Triska @ 2008-08-15 22:20 UTC (permalink / raw
To: emacs-pretest-bug
Sometimes in flyspell-mode, the mode line still says "Fly", but no
more flychecking is actually performed. I cannot yet reproduce it
reliably; however, if you add the following to your .emacs:
(defun my-flyspell-check ()
(when flyspell-mode
(unless (memq 'flyspell-post-command-hook post-command-hook)
(with-current-buffer (get-buffer-create "flywarn")
(insert "flychecking inactive despite flyspell-mode!\n"))
(display-buffer "flywarn"))))
(setq flycheck-timer (run-with-timer 0 0.5 'my-flyspell-check))
you will be informed when flyspell mode is superficially active, but
no checking is actually performed. I only encountered the problem once
since I have the above code in my .emacs, and then I also saw:
"Invalid search bound (wrong side of point)" in *Messages*, which I
previously probably missed. Thus I think this could for example happen
when switching buffers or using the minibuffer at the wrong time.
It is clear that flyspell-post-command-hook must be removed from
post-command-hook in case of errors; if the error is hard to catch in
the hook, I would already find it an improvement if flyspell mode were
cleanly disabled (existing underlines, mode line, ...) in such cases.
In GNU Emacs 23.0.60.1 (i386-apple-darwin8.11.1, GTK+ Version 2.12.9)
of 2008-08-15 on mt-computer.local
Windowing system distributor `The XFree86 Project, Inc', version 11.0.40400000
Important settings:
value of $LC_ALL: nil
value of $LC_COLLATE: nil
value of $LC_CTYPE: nil
value of $LC_MESSAGES: nil
value of $LC_MONETARY: nil
value of $LC_NUMERIC: nil
value of $LC_TIME: nil
value of $LANG: en.UTF-8
value of $XMODIFIERS: nil
locale-coding-system: nil
default-enable-multibyte-characters: t
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
2008-08-15 22:20 Markus Triska
@ 2008-08-16 4:12 ` Stefan Monnier
0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2008-08-16 4:12 UTC (permalink / raw
To: Markus Triska; +Cc: emacs-pretest-bug, 728
> no checking is actually performed. I only encountered the problem once
> since I have the above code in my .emacs, and then I also saw:
> "Invalid search bound (wrong side of point)" in *Messages*, which I
You need to try and track down the porigian of this message. It may
be due to flyspell but it can also be due to something else: if there's
a bug in one of the post-command-hooks, post-command-hook is set to nil
(hence *all* post-command-hooks are disabled).
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
@ 2008-08-21 23:25 Chong Yidong
2008-08-22 2:15 ` Markus Triska
0 siblings, 1 reply; 6+ messages in thread
From: Chong Yidong @ 2008-08-21 23:25 UTC (permalink / raw
To: Markus Triska; +Cc: 728
> Sometimes in flyspell-mode, the mode line still says "Fly", but no
> more flychecking is actually performed. I cannot yet reproduce it
> reliably
Hi Markus,
Have you found a way to track down the problem causing this bug?
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
2008-08-21 23:25 bug#728: 23.0.60; flyspell checking is sometimes silently disabled Chong Yidong
@ 2008-08-22 2:15 ` Markus Triska
2008-09-08 23:18 ` Markus Triska
0 siblings, 1 reply; 6+ messages in thread
From: Markus Triska @ 2008-08-22 2:15 UTC (permalink / raw
To: Chong Yidong; +Cc: 728
Chong Yidong <cyd@stupidchicken.com> writes:
> Have you found a way to track down the problem causing this bug?
I have set debug-on-error to t, so the next time I see this problem, I
hope to catch which function raises the error. I already know that it is
either preview-move-point (from AUCTeX) or flyspell-post-command-hook.
Thus, especially if an AUCTeX user reads this: If you want to help to
debug this problem, please add the following to your .emacs:
(defun my-flyspell-check ()
(when flyspell-mode
(unless (memq 'flyspell-post-command-hook post-command-hook)
(with-current-buffer (get-buffer-create "flywarn")
(insert "flychecking inactive despite flyspell-mode!\n"))
(display-buffer "flywarn"))))
(setq flycheck-timer (run-with-timer 0 0.5 'my-flyspell-check))
and it will warn you when Flyspell is no longer really active.
Also, as I mentioned: I find it fair enough that Flyspell is disabled
when there are errors; I only wish that there were a general mechanism
to disable it in a cleaner way in case of errors, i.e., existing
underlines should be removed, the mode line should reflect that it is no
longer active etc. In short, when flyspell-post-command-hook must be
removed from post-command-hook, also (flyspell-mode 0) or anything
equivalent should be done. Analogously for some other modes (linum.el is
another example, where errors in a custom linum-format function should
make Emacs disable the minor mode completely, thus removing it from
other hooks as well).
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
2008-08-22 2:15 ` Markus Triska
@ 2008-09-08 23:18 ` Markus Triska
2008-09-14 18:33 ` Markus Triska
0 siblings, 1 reply; 6+ messages in thread
From: Markus Triska @ 2008-09-08 23:18 UTC (permalink / raw
To: Chong Yidong; +Cc: 728
The error occurs in flyspell-post-command-hook. To reproduce:
1) Install the latest AUCTeX (11.85), and let .emacs consist only of:
(load "auctex.el" nil t t)
2) Let sat.tex ( http://www.logic.at/prolog/sat.tex ) consist of:
\maketitle
\includegraphics[scale=0.8]
% \hline
% \begin{itemize}
% \hspace{1cm}\hbox{\begin{tabular}
% $a$ & $b$ & $c$ & $d$ \\
without leading or trailing whitespace.
3) When you now do:
$ emacs sat.tex -f flyspell-mode
and press:
M-g M-g 3 RET C-s $
you get:
Error in post-command-hook: (error Invalid search bound (wrong side
of point))
Alternatively, you can also press for example:
C-n C-n C-p C-n C-n C-n C-n C-n C-n C-p
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#728: 23.0.60; flyspell checking is sometimes silently disabled
2008-09-08 23:18 ` Markus Triska
@ 2008-09-14 18:33 ` Markus Triska
0 siblings, 0 replies; 6+ messages in thread
From: Markus Triska @ 2008-09-14 18:33 UTC (permalink / raw
To: Chong Yidong; +Cc: 728
The following patch fixes this problem for me:
2008-09-14 Markus Triska <markus.triska@gmx.at>
* textmodes/flyspell.el (flyspell-math-tex-command-p): Always
catch errors raised in `texmathp'.
(flyspell-tex-math-initialized): Remove.
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 47297c9..4296861 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1166,35 +1166,19 @@ Mostly we check word delimiters."
res))))))))
;;*---------------------------------------------------------------------*/
-;;* flyspell-tex-math-initialized ... */
-;;*---------------------------------------------------------------------*/
-(defvar flyspell-tex-math-initialized nil)
-
-;;*---------------------------------------------------------------------*/
;;* flyspell-math-tex-command-p ... */
;;* ------------------------------------------------------------- */
-;;* This function uses the texmathp package to check if (point) */
-;;* is within a tex command. In order to avoid using */
-;;* condition-case each time we use the variable */
-;;* flyspell-tex-math-initialized to make a special case the first */
-;;* time that function is called. */
+;;* This function uses the texmathp package to check if point */
+;;* is within a TeX math environment. `texmathp' can yield errors */
+;;* if the document is currently not valid TeX syntax. */
;;*---------------------------------------------------------------------*/
(defun flyspell-math-tex-command-p ()
(when (fboundp 'texmathp)
- (cond
- (flyspell-check-tex-math-command
- nil)
- ((eq flyspell-tex-math-initialized t)
- (texmathp))
- ((eq flyspell-tex-math-initialized 'error)
- nil)
- (t
- (setq flyspell-tex-math-initialized t)
+ (if flyspell-check-tex-math-command
+ nil
(condition-case nil
(texmathp)
- (error (progn
- (setq flyspell-tex-math-initialized 'error)
- nil)))))))
+ (error nil)))))
;;*---------------------------------------------------------------------*/
;;* flyspell-tex-command-p ... */
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-09-14 18:33 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-21 23:25 bug#728: 23.0.60; flyspell checking is sometimes silently disabled Chong Yidong
2008-08-22 2:15 ` Markus Triska
2008-09-08 23:18 ` Markus Triska
2008-09-14 18:33 ` Markus Triska
-- strict thread matches above, loose matches on Subject: below --
2008-08-15 22:20 Markus Triska
2008-08-16 4:12 ` Stefan Monnier
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.