Function: ispell-skip-region
ispell-skip-region is a byte-compiled function defined in
ispell.el.gz.
Signature
(ispell-skip-region KEY)
Documentation
Skip across KEY and then to end of region.
Key lookup determines region to skip. Point is placed at end of skipped region.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/ispell.el.gz
(defun ispell-skip-region (key)
"Skip across KEY and then to end of region.
Key lookup determines region to skip.
Point is placed at end of skipped region."
;; move over key to begin checking.
(forward-char (length key))
(let ((start (point))
;; Regenerate each call... This function can change region definition.
(alist (ispell-skip-region-list))
alist-key null-skip)
(cond
;; what about quoted comment, or comment inside strings?
((and (null ispell-check-comments) comment-start
(string= key comment-start))
(if (string= "" comment-end)
(forward-line)
(search-forward comment-end ispell-region-end t)))
((and (eq 'exclusive ispell-check-comments) comment-start
(string= key comment-end))
(search-forward comment-start ispell-region-end :end))
((and ispell-skip-tib (string-match ispell-tib-ref-beginning key))
(re-search-forward ispell-tib-ref-end ispell-region-end t))
;; markings from alist
(t
(while alist
(setq alist-key (eval (car (car alist))))
(if (string-match alist-key key)
(progn
(setq alist (cdr (car alist)))
(cond
((null alist) (setq null-skip t)) ; done! Just skip key.
((not (consp alist))
;; Search past end of spell region to find this region end.
(re-search-forward (eval alist) (point-max) t))
((and (= 1 (length alist))
(stringp (car alist)))
(re-search-forward (car alist) (point-max) t))
(t
(setq null-skip t) ; error handling in functions!
(if (consp (cdr alist))
(apply (car alist) (cdr alist))
(funcall (car alist)))))
(setq alist nil))
(setq alist (cdr alist))))))
(if (and (= start (point)) (null null-skip))
(progn
(message "Matching region end for `%s' point %d not found"
key (point))
(beep)
(sit-for 2)))))