hrp@snoid.cray.com (Hal Peterson) (12/04/88)
This is Emacs version 18.52, running on a Sun-3/50. Spell-filter is a buffer local variable (or at least it should be; a while ago I sent in a fix to make it so) and its value is nil by default. When spell-region is called on a buffer with a non-nil spell-filter, it switches to a scratch buffer to run the filter, and discovers that filter is now nil. The following patch shows spell-region how to remember the value of spell-filter across the set-buffer call. -- Hal Peterson / Cray Research / 1440 Northland Dr. / Mendota Hts, MN 55120 hrp@cray.com bungia!cray!hrp (612) 681-3145 ============================================================ *** spell.el-dist Sat Dec 3 16:38:30 1988 --- spell.el Sat Dec 3 16:41:00 1988 *************** *** 56,68 **** DESCRIPTION is an optional string naming the unit being checked: for example, \"word\"." (interactive "r") ! (let ((buf (get-buffer-create " *temp*"))) (save-excursion (set-buffer buf) (widen) (erase-buffer)) (message "Checking spelling of %s..." (or description "region")) ! (if (and (null spell-filter) (= ?\n (char-after (1- end)))) (if (string= "spell" spell-command) (call-process-region start end "spell" nil buf) (call-process-region start end shell-file-name --- 56,68 ---- DESCRIPTION is an optional string naming the unit being checked: for example, \"word\"." (interactive "r") ! (let ((buf (get-buffer-create " *temp*")) (filter spell-filter)) (save-excursion (set-buffer buf) (widen) (erase-buffer)) (message "Checking spelling of %s..." (or description "region")) ! (if (and (null filter) (= ?\n (char-after (1- end)))) (if (string= "spell" spell-command) (call-process-region start end "spell" nil buf) (call-process-region start end shell-file-name *************** *** 72,78 **** (set-buffer buf) (insert-buffer-substring oldbuf start end) (or (bolp) (insert ?\n)) ! (if spell-filter (funcall spell-filter)) (if (string= "spell" spell-command) (call-process-region (point-min) (point-max) "spell" t buf) (call-process-region (point-min) (point-max) shell-file-name --- 72,78 ---- (set-buffer buf) (insert-buffer-substring oldbuf start end) (or (bolp) (insert ?\n)) ! (if filter (funcall filter)) (if (string= "spell" spell-command) (call-process-region (point-min) (point-max) "spell" t buf) (call-process-region (point-min) (point-max) shell-file-name