changeset 12260:5b8203bdfd6a

Removed autoload from ispell-dictionary-alist, ispell-menu-map, ispell-menu-lucid, and ispell-menu-map-needed so users can more easily modify and upgrade entries. (ispell-dictionary-alist): Once more a single variable. (ispell-required-version): Documentation changes (ispell-skip-sgml): Documentation changes (ispell-command-loop): mode-line-format now shows misspelled word. (ispell-message-text-end): Can now process postscript version 1. (ispell-message-start-skip): New variable for block skips, set up for pgp and forward blocks. (ispell-message-end-skip): New variable for block skips, set up for pgp and forward blocks. (ispell-message): Added block message skipping. (ispell-buffer-local-parsing): Added html-mode.
author Richard M. Stallman <rms@gnu.org>
date Fri, 16 Jun 1995 05:13:01 +0000
parents 572f267636d5
children cd2e7821bbf5
files lisp/textmodes/ispell.el
diffstat 1 files changed, 64 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/ispell.el	Fri Jun 16 04:56:05 1995 +0000
+++ b/lisp/textmodes/ispell.el	Fri Jun 16 05:13:01 1995 +0000
@@ -8,13 +8,16 @@
 ;;; Authors         : Ken Stevens <k.stevens@ieee.org>
 ;;; Note: version numbers and time stamp are not updated
 ;;;   when this file is edited for release with GNU Emacs.
-;;; Last Modified On: Mon Feb  6 17:39:38 EST 1995
-;;; Update Revision : 2.36
+;;; Last Modified On: Tue Jun 13 12:05:28 EDT 1995
+;;; Update Revision : 2.37
 ;;; Syntax          : emacs-lisp
 ;;; Status	    : Release with 3.1.12+ ispell.
 ;;; Version	    : International Ispell Version 3.1 by Geoff Kuenning.
 ;;; Bug Reports	    : ispell-el-bugs@itcorp.com
 ;;;
+;;; Note: version numbers and time stamp are not updated
+;;;   when this file is edited for release with GNU emacs.
+;;;
 ;;; This file is part of GNU Emacs.
 ;;;
 ;;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -131,6 +134,10 @@
 ;;;
 ;;; HISTORY
 ;;;
+;;; Revision 2.37  1995/6/13 12:05:28	stevens
+;;; Removed autoload from ispell-dictionary-alist. *choices* mode-line shows
+;;; misspelled word.  Block skip for pgp & forwarded messages added.
+;;;
 ;;; Revision 2.36  1995/2/6 17:39:38	stevens
 ;;; Properly adjust screen with different ispell-choices-win-default-height
 ;;; settings.  Skips SGML entity references.
@@ -409,7 +416,6 @@
   "*Formatting function for displaying word being spell checked.
 The function must take one string argument and return a string.")
 
-;;;###autoload
 (defvar ispell-personal-dictionary nil
   "*File name of your personal spelling dictionary, or nil.
 If nil, the default personal dictionary, \"~/.ispell_DICTNAME\" is used,
@@ -436,8 +442,10 @@
 words as correct.  See also `ispell-dictionary-alist', which may be used
 for language-specific arguments.")
 
-;;;###autoload
-(defvar ispell-dictionary-alist-1	; sk  9-Aug-1991 18:28
+;;; ispell-dictionary-alist is set up from two subvariables above
+;;; to avoid having very long lines in loaddefs.el.
+(defvar ispell-dictionary-alist
+
   '((nil				; default (english.aff)
      "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil)
     ("english"				; make english explicitly selectable
@@ -457,11 +465,8 @@
     ("nederlands8"				; dutch8.aff
      "[A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
      "[^A-Za-z\300-\305\307\310-\317\322-\326\331-\334\340-\345\347\350-\357\361\362-\366\371-\374]"
-     "[']" t ("-C") nil)))
-
-;;;###autoload
-(defvar ispell-dictionary-alist-2
-  '(("svenska"				;7 bit swedish mode
+     "[']" t ("-C") nil)
+    ("svenska"				;7 bit swedish mode
      "[A-Za-z}{|\\133\\135\\\\]" "[^A-Za-z}{|\\133\\135\\\\]"
      "[']" nil ("-C") nil)
     ("svenska8"				;8 bit swedish mode
@@ -480,14 +485,8 @@
     ("dansk"				; dansk.aff
      "[A-Z\306\330\305a-z\346\370\345]" "[^A-Z\306\330\305a-z\346\370\345]"
      "" nil ("-C") nil)
-    ))
-
+    )
 
-;;; ispell-dictionary-alist is set up from two subvariables above
-;;; to avoid having very long lines in loaddefs.el.
-;;;###autoload
-(defvar ispell-dictionary-alist
-  (append ispell-dictionary-alist-1 ispell-dictionary-alist-2)
   "An alist of dictionaries and their associated parameters.
 
 Each element of this list is also a list:
@@ -530,27 +529,21 @@
 language.aff file \(e.g., english.aff\).")
 
 
-;;;###autoload
 (defvar ispell-menu-map nil "Key map for ispell menu")
 
-;;;###autoload
 (defvar ispell-menu-lucid nil "Spelling menu for Lucid Emacs.")
 
 ;;; Break out lucid menu and split into several calls to avoid having
 ;;; long lines in loaddefs.el.  Detect need off following constant.
 
-;;;###autoload
 (defconst ispell-menu-map-needed	; make sure this is not Lucid Emacs
   (and (not ispell-menu-map)
-;;; This is commented out because it fails in Emacs.
-;;; due to the fact that menu-bar is loaded much later than loaddefs.
-;;;       ;; make sure this isn't Lucid Emacs
-;;;       (featurep 'menu-bar)
-       (string-lessp "19" emacs-version)))
+       (string-lessp "19" emacs-version)
+       ;; make sure this isn't Lucid Emacs
+       (not (string-match "Lucid" emacs-version))))
 
 
 ;;; setup dictionary
-;;;###autoload
 (if ispell-menu-map-needed
     (let ((dicts (reverse (cons (cons "default" nil) ispell-dictionary-alist)))
 	  name)
@@ -566,7 +559,6 @@
 			  (list 'ispell-change-dictionary name))))))))
 
 ;;; define commands in menu in opposite order you want them to appear.
-;;;###autoload
 (if ispell-menu-map-needed
     (progn
       (define-key ispell-menu-map [ispell-change-dictionary]
@@ -580,7 +572,6 @@
       (define-key ispell-menu-map [ispell-complete-word-interior-frag]
 	'("Complete Word Frag" . ispell-complete-word-interior-frag))))
 
-;;;###autoload
 (if ispell-menu-map-needed
     (progn
       (define-key ispell-menu-map [ispell-continue]
@@ -592,7 +583,6 @@
       (define-key ispell-menu-map [ispell-buffer]
 	'("Check Buffer" . ispell-buffer))))
 
-;;;###autoload
 (if ispell-menu-map-needed
     (progn
       (define-key ispell-menu-map [ispell-message]
@@ -645,7 +635,7 @@
 
 
 ;;; The version must be 3.1 or greater for this version of ispell.el
-;;; There is an incompatibility between versin 3.1.12 and lower versions.
+;;; There is an incompatibility between version 3.1.12 and lower versions.
 (defconst ispell-required-version '("3.1." 12)
   "Ispell versions with which this version of ispell.el is known to work.")
 (defvar ispell-offset 1
@@ -736,9 +726,8 @@
 
 (defvar ispell-skip-sgml nil
   "Skips spell checking of SGML tags and entity references when non-nil.
-This variable is set when major-mode is sgml-mode.")
+This variable is set when major-mode is sgml-mode or html-mode.")
 
-;;;###autoload
 (defvar ispell-local-pdict ispell-personal-dictionary
   "A buffer local variable containing the current personal dictionary.
 If non-nil, the value must be a string, which is a file name.
@@ -783,7 +772,8 @@
      (not (boundp 'epoch::version))
      (defalias 'ispell 'ispell-buffer))
 
-;;;###autoload (define-key global-map "\M-$" 'ispell-word)
+;;;###autoload
+(define-key global-map "\M-$" 'ispell-word)
 
 ;;;###autoload
 (defun ispell-word (&optional following quietly continue)
@@ -973,7 +963,7 @@
     ;; setup the *Choices* buffer with valid data.
     (save-excursion
       (set-buffer (get-buffer-create ispell-choices-buffer))
-      (setq mode-line-format "--  %b  --")
+      (setq mode-line-format (concat "--  %b  --  word: " word))
       (erase-buffer)
       (if guess
 	  (progn
@@ -1126,7 +1116,9 @@
 			      (erase-buffer)
 			      (setq count ?0
 				    skipped 0
-				    mode-line-format "--  %b  --"
+				    mode-line-format (concat
+						      "--  %b  --  word: "
+						      new-word)
 				    miss (lookup-words new-word)
 				    choices miss)
 			      (while (and choices ; adjust choices window.
@@ -1587,7 +1579,7 @@
     nil))
 
 
-;;; ispell-change-dictionary is set in some people's hooks.  Maybe it should
+;;; ispell-change-dictionary is set in some people's hooks.  Maybe this should
 ;;;  call ispell-init-process rather than wait for a spell checking command?
 
 ;;;###autoload
@@ -2038,7 +2030,7 @@
   (mapconcat (function identity)
 	     '(
 	       ;; Matches postscript files.
-	       "^%!PS-Adobe-[23].0"
+	       "^%!PS-Adobe-[123].0"
 	       ;; Matches uuencoded text
 	       "^begin [0-9][0-9][0-9] .*\nM.*\nM.*\nM"
 	       ;; Matches shell files (esp. auto-decoding)
@@ -2054,6 +2046,32 @@
 Otherwise, it must be a function which is called to get the limit.")
 
 
+(defvar ispell-message-start-skip
+  (mapconcat (function identity)
+	     '(
+	       ;; Matches forwarded messages
+	       "^---* Forwarded Message"
+	       ;; Matches PGP Public Key block
+	       "^---*BEGIN PGP [A-Z ]*--*"
+	       )
+	     "\\|")
+  "Spelling is skipped inside these start/end groups by ispell-message.
+Assumed that blocks are not mutually inclusive.")
+
+
+(defvar ispell-message-end-skip
+  (mapconcat (function identity)
+	     '(
+	       ;; Matches forwarded messages
+	       "^--- End of Forwarded Message"
+	       ;; Matches PGP Public Key block
+	       "^---*END PGP [A-Z ]*--*"
+	       )
+	     "\\|")
+  "Spelling is skipped inside these start/end groups by ispell-message.
+Assumed that blocks are not mutually inclusive.")
+
+
 ;;;###autoload
 (defun ispell-message ()
   "Check the spelling of a mail message or news post.
@@ -2155,10 +2173,12 @@
 		   ;; Check the next batch of lines that *aren't* cited.
 		   (end-c (and (re-search-forward cite-regexp-end limit 'end)
 			       (match-beginning 0)))
-		   ;; skip a forwarded message
+		   ;; Skip a block of included text.
 		   (end-fwd (and (goto-char start)
-				 (re-search-forward "---* Forwarded Message"
-						    limit 'end)))
+				 (re-search-forward ispell-message-start-skip
+						    limit 'end)
+				 (progn (beginning-of-line)
+					(point))))
 		   (end (or (and end-c end-fwd (min end-c end-fwd))
 			    end-c end-fwd
 			    ;; defalut to limit of text.
@@ -2168,7 +2188,7 @@
 	      (if (and end-fwd (= end end-fwd))
 		  (progn
 		    (goto-char end)
-		    (search-forward "--- End of Forwarded Message" limit 'end))
+		    (re-search-forward ispell-message-end-skip limit 'end))
 		(goto-char end)))))
       (set-marker limit nil))))
 
@@ -2203,8 +2223,8 @@
 	  (eq ispell-parser 'tex))
       (process-send-string ispell-process "+\n") ; set ispell mode to tex
     (process-send-string ispell-process "-\n"))	; set mode to normal (nroff)
-  ;; Hard-wire test for SGML mode.
-  (setq ispell-skip-sgml (eq 'sgml-mode major-mode))
+  ;; Hard-wire test for SGML & HTML mode.
+  (setq ispell-skip-sgml (memq major-mode '(sgml-mode html-mode)))
   ;; Set default extended character mode for given buffer, if any.
   (let ((extended-char-mode (ispell-get-extended-character-mode)))
     (if extended-char-mode
@@ -2328,7 +2348,7 @@
   reg-end)
 
 
-(defconst ispell-version "2.36 -- Mon Feb  6 17:39:38 EST 1995")
+(defconst ispell-version "2.37 -- Tue Jun 13 12:05:28 EDT 1995")
 
 (provide 'ispell)