Function: mh-goto-next-button
mh-goto-next-button is an autoloaded and byte-compiled function
defined in mh-mime.el.gz.
Signature
(mh-goto-next-button BACKWARD-FLAG &optional CRITERION)
Documentation
Search for next button satisfying criterion.
If BACKWARD-FLAG is non-nil search backward in the buffer for a mime button. If CRITERION is a function or a symbol which has a function binding then that function must return non-nil at the button we stop.
Source Code
;; Defined in /usr/src/emacs/lisp/mh-e/mh-mime.el.gz
;;;###mh-autoload
(defun mh-goto-next-button (backward-flag &optional criterion)
"Search for next button satisfying criterion.
If BACKWARD-FLAG is non-nil search backward in the buffer for a mime
button.
If CRITERION is a function or a symbol which has a function binding
then that function must return non-nil at the button we stop."
(unless (or (and (symbolp criterion) (fboundp criterion))
(functionp criterion))
(setq criterion (lambda (_) t)))
;; Move to the next button in the buffer satisfying criterion
(goto-char (or (save-excursion
(beginning-of-line)
;; Find point before current button
(let ((point-before-current-button
(save-excursion
(while (get-text-property (point) 'mh-data)
(unless (= (forward-line
(if backward-flag 1 -1))
0)
(if backward-flag
(goto-char (point-min))
(goto-char (point-max)))))
(point))))
;; Skip over current button
(while (and (get-text-property (point) 'mh-data)
(not (if backward-flag (bobp) (eobp))))
(forward-line (if backward-flag -1 1)))
;; Stop at next MIME button if any exists.
(cl-block loop
(while (/= (progn
(unless (= (forward-line
(if backward-flag -1 1))
0)
(if backward-flag
(goto-char (point-max))
(goto-char (point-min)))
(beginning-of-line))
(point))
point-before-current-button)
(when (and (get-text-property (point) 'mh-data)
(funcall criterion (point)))
(cl-return-from loop (point))))
nil)))
(point))))