changeset 68053:5770fac9a117

(flyspell-accept-buffer-local-defs): Add an argument `force' to disable the flyspell-last-buffer optimization. (flyspell-mode-on): Use it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 05 Jan 2006 21:52:16 +0000
parents 52ebcbbec4f0
children 30042a8370ce
files lisp/ChangeLog lisp/textmodes/flyspell.el
diffstat 2 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Jan 05 20:45:59 2006 +0000
+++ b/lisp/ChangeLog	Thu Jan 05 21:52:16 2006 +0000
@@ -1,5 +1,9 @@
 2006-01-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* textmodes/flyspell.el (flyspell-accept-buffer-local-defs): Add an
+	argument `force' to disable the flyspell-last-buffer optimization.
+	(flyspell-mode-on): Use it.
+
 	* progmodes/flymake.el (flymake-get-cleanup-function): Default to
 	flymake-simple-cleanup.
 	(flymake-allowed-file-name-masks): Use this new default.
--- a/lisp/textmodes/flyspell.el	Thu Jan 05 20:45:59 2006 +0000
+++ b/lisp/textmodes/flyspell.el	Thu Jan 05 21:52:16 2006 +0000
@@ -1,7 +1,7 @@
 ;;; flyspell.el --- on-the-fly spell checker
 
 ;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
-;;   2005 Free Software Foundation, Inc.
+;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Manuel Serrano <Manuel.Serrano@sophia.inria.fr>
 ;; Maintainer: FSF
@@ -504,11 +504,11 @@
 (defvar flyspell-last-buffer nil
   "The buffer in which the last flyspell operation took place.")
 
-(defun flyspell-accept-buffer-local-defs ()
+(defun flyspell-accept-buffer-local-defs (&optional force)
   ;; When flyspell-word is used inside a loop (e.g. when processing
   ;; flyspell-changes), the calls to `ispell-accept-buffer-local-defs' end
   ;; up dwarfing everything else, so only do it when the buffer has changed.
-  (unless (eq flyspell-last-buffer (current-buffer))
+  (when (or force (not (eq flyspell-last-buffer (current-buffer))))
     (setq flyspell-last-buffer (current-buffer))
     ;; Strange problem:  If buffer in current window has font-lock turned on,
     ;; but SET-BUFFER was called to point to an invisible buffer, this ispell
@@ -539,7 +539,9 @@
   ;; we have to force ispell to accept the local definition or
   ;; otherwise it could be too late, the local dictionary may
   ;; be forgotten!
-  (flyspell-accept-buffer-local-defs)
+  ;; Pass the `force' argument for the case where flyspell was active already
+  ;; but the buffer's local-defs have been edited.
+  (flyspell-accept-buffer-local-defs 'force)
   ;; we put the `flyspell-delayed' property on some commands
   (flyspell-delay-commands)
   ;; we put the `flyspell-deplacement' property on some commands