Function: enriched-next-annotation

enriched-next-annotation is a byte-compiled function defined in enriched.el.gz.

Signature

(enriched-next-annotation)

Documentation

Find and return next text/enriched annotation.

Any "<<" strings encountered are converted to "<". Return value is (begin end name positive-p), or nil if none was found.

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/enriched.el.gz
(defun enriched-next-annotation ()
  "Find and return next text/enriched annotation.
Any \"<<\" strings encountered are converted to \"<\".
Return value is \(begin end name positive-p), or nil if none was found."
  (while (and (search-forward "<" nil 1)
	      (progn (goto-char (match-beginning 0))
                     ;; Make sure we are not inside a string, where any
                     ;; matches for 'enriched-annotation-regexp' are
                     ;; false positives.  This happens, for example, in
                     ;; display properties that specify SVG images.
                     (or (nth 3 (syntax-ppss))
                         (not (looking-at enriched-annotation-regexp)))))
    (forward-char 1)
    (if (eq ?< (char-after (point)))
	(delete-char 1)
      ;; A single < that does not start an annotation is an error,
      ;; which we note and then ignore.
      (message "Warning: malformed annotation in file at %s"
	       (1- (point)))))
  (if (not (eobp))
      (let* ((beg (match-beginning 0))
	     (end (match-end 0))
	     (name (downcase (buffer-substring
			      (match-beginning 2) (match-end 2))))
	     (pos (not (match-beginning 1))))
	(list beg end name pos))))