Function: fortran-end-of-block
fortran-end-of-block is an interactive and byte-compiled function
defined in fortran.el.gz.
Signature
(fortran-end-of-block &optional NUM)
Documentation
Move point forward to the end of the current code block.
With optional argument NUM, go forward that many balanced blocks. If NUM is negative, go backward to the start of a block. Does not check for consistency of block types. Interactively, pushes mark before moving point.
Probably introduced at or before Emacs version 22.1.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/fortran.el.gz
;; Used in hs-special-modes-alist.
(defun fortran-end-of-block (&optional num)
"Move point forward to the end of the current code block.
With optional argument NUM, go forward that many balanced blocks.
If NUM is negative, go backward to the start of a block. Does
not check for consistency of block types. Interactively, pushes
mark before moving point."
(interactive "p")
(if (called-interactively-p 'any) (push-mark (point) t))
(and num (< num 0) (fortran-beginning-of-block (- num)))
(let ((case-fold-search t)
(count (or num 1)))
(end-of-line)
(while (and (> count 0)
(re-search-forward
(concat "\\(" fortran-blocks-re
(if fortran-check-all-num-for-matching-do
"\\|^[ \t]*[0-9]+" "")
"\\|continue\\|end\\)\\>")
nil 'move))
(beginning-of-line)
(if (if (looking-at (concat "^[0-9 \t]*" fortran-if-start-re))
(fortran-looking-at-if-then)
(looking-at fortran-start-block-re))
(setq count (1+ count))
(if (or (looking-at fortran-end-block-re)
(and (or (looking-at "^[0-9 \t]*continue")
(and fortran-check-all-num-for-matching-do
(looking-at "[ \t]*[0-9]+")))
(fortran-check-for-matching-do)))
(setq count (1- count))))
(end-of-line))
(if (> count 0) (error "Missing block end"))))