[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/textmodes/ispell.el
From: |
Richard M . Stallman |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/textmodes/ispell.el |
Date: |
Tue, 28 Jun 2005 14:58:30 -0400 |
Index: emacs/lisp/textmodes/ispell.el
diff -c emacs/lisp/textmodes/ispell.el:1.165
emacs/lisp/textmodes/ispell.el:1.166
*** emacs/lisp/textmodes/ispell.el:1.165 Thu Jun 9 12:11:54 2005
--- emacs/lisp/textmodes/ispell.el Tue Jun 28 18:58:30 2005
***************
*** 1468,1547 ****
end (car (cdr (cdr word)))
word (car word))
! ;; now check spelling of word if it has 3 or more characters.
! (cond
! ((> (length word) 2)
! (or quietly
! (message "Checking spelling of %s..."
! (funcall ispell-format-word word)))
! (ispell-send-string "%\n") ; put in verbose mode
! (ispell-send-string (concat "^" word "\n"))
! ;; wait until ispell has processed word
! (while (progn
! (ispell-accept-output)
! (not (string= "" (car ispell-filter)))))
! ;;(ispell-send-string "!\n") ;back to terse mode.
! (setq ispell-filter (cdr ispell-filter)) ; remove extra \n
! (if (and ispell-filter (listp ispell-filter))
! (if (> (length ispell-filter) 1)
! (error "Ispell and its process have different character maps")
! (setq poss (ispell-parse-output (car ispell-filter)))))
! (cond ((eq poss t)
! (or quietly
! (message "%s is correct"
! (funcall ispell-format-word word)))
! (and (fboundp 'extent-at)
! (extent-at start)
! (delete-extent (extent-at start))))
! ((stringp poss)
! (or quietly
! (message "%s is correct because of root %s"
! (funcall ispell-format-word word)
! (funcall ispell-format-word poss)))
! (and (fboundp 'extent-at)
! (extent-at start)
! (delete-extent (extent-at start))))
! ((null poss) (message "Error in ispell process"))
! (ispell-check-only ; called from ispell minor mode.
! (if (fboundp 'make-extent)
! (let ((ext (make-extent start end)))
! (set-extent-property ext 'face ispell-highlight-face)
! (set-extent-property ext 'priority 2000))
! (beep)
! (message "%s is incorrect"(funcall ispell-format-word word))))
! (t ; prompt for correct word.
! (save-window-excursion
! (setq replace (ispell-command-loop
! (car (cdr (cdr poss)))
! (car (cdr (cdr (cdr poss))))
! (car poss) start end)))
! (cond ((equal 0 replace)
! (ispell-add-per-file-word-list (car poss)))
! (replace
! (setq new-word (if (atom replace) replace (car replace))
! cursor-location (+ (- (length word) (- end start))
! cursor-location))
! (if (not (equal new-word (car poss)))
! (progn
! (delete-region start end)
! (setq start (point))
! (ispell-insert-word new-word)
! (setq end (point))))
! (if (not (atom replace)) ;recheck spelling of replacement
! (progn
! (if (car (cdr replace)) ; query replace requested
! (save-window-excursion
! (query-replace word new-word t)))
! (goto-char start)
! ;; single word could be split into multiple words
! (setq ispell-quit (not (ispell-region start end)))
! ))))
! ;; keep if rechecking word and we keep choices win.
! (if (get-buffer ispell-choices-buffer)
! (kill-buffer ispell-choices-buffer))))
! (ispell-pdict-save ispell-silently-savep)
! ;; NB: Cancels ispell-quit incorrectly if called from ispell-region
! (if ispell-quit (setq ispell-quit nil replace 'quit))))
(goto-char cursor-location) ; return to original location
replace)))
--- 1468,1546 ----
end (car (cdr (cdr word)))
word (car word))
! ;; At this point it used to ignore 2-letter words.
! ;; But that is silly; if the user asks for it, we should do it. - rms.
! (or quietly
! (message "Checking spelling of %s..."
! (funcall ispell-format-word word)))
! (ispell-send-string "%\n") ; put in verbose mode
! (ispell-send-string (concat "^" word "\n"))
! ;; wait until ispell has processed word
! (while (progn
! (ispell-accept-output)
! (not (string= "" (car ispell-filter)))))
! ;;(ispell-send-string "!\n") ;back to terse mode.
! (setq ispell-filter (cdr ispell-filter)) ; remove extra \n
! (if (and ispell-filter (listp ispell-filter))
! (if (> (length ispell-filter) 1)
! (error "Ispell and its process have different character maps")
! (setq poss (ispell-parse-output (car ispell-filter)))))
! (cond ((eq poss t)
! (or quietly
! (message "%s is correct"
! (funcall ispell-format-word word)))
! (and (fboundp 'extent-at)
! (extent-at start)
! (delete-extent (extent-at start))))
! ((stringp poss)
! (or quietly
! (message "%s is correct because of root %s"
! (funcall ispell-format-word word)
! (funcall ispell-format-word poss)))
! (and (fboundp 'extent-at)
! (extent-at start)
! (delete-extent (extent-at start))))
! ((null poss) (message "Error in ispell process"))
! (ispell-check-only ; called from ispell minor mode.
! (if (fboundp 'make-extent)
! (let ((ext (make-extent start end)))
! (set-extent-property ext 'face ispell-highlight-face)
! (set-extent-property ext 'priority 2000))
! (beep)
! (message "%s is incorrect"(funcall ispell-format-word word))))
! (t ; prompt for correct word.
! (save-window-excursion
! (setq replace (ispell-command-loop
! (car (cdr (cdr poss)))
! (car (cdr (cdr (cdr poss))))
! (car poss) start end)))
! (cond ((equal 0 replace)
! (ispell-add-per-file-word-list (car poss)))
! (replace
! (setq new-word (if (atom replace) replace (car replace))
! cursor-location (+ (- (length word) (- end start))
! cursor-location))
! (if (not (equal new-word (car poss)))
! (progn
! (delete-region start end)
! (setq start (point))
! (ispell-insert-word new-word)
! (setq end (point))))
! (if (not (atom replace)) ;recheck spelling of replacement
! (progn
! (if (car (cdr replace)) ; query replace requested
! (save-window-excursion
! (query-replace word new-word t)))
! (goto-char start)
! ;; single word could be split into multiple words
! (setq ispell-quit (not (ispell-region start end)))
! ))))
! ;; keep if rechecking word and we keep choices win.
! (if (get-buffer ispell-choices-buffer)
! (kill-buffer ispell-choices-buffer))))
! (ispell-pdict-save ispell-silently-savep)
! ;; NB: Cancels ispell-quit incorrectly if called from ispell-region
! (if ispell-quit (setq ispell-quit nil replace 'quit)))
(goto-char cursor-location) ; return to original location
replace)))