summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/progmodes/f90.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el
index 14363e4dccf..eb6db05c159 100644
--- a/lisp/progmodes/f90.el
+++ b/lisp/progmodes/f90.el
@@ -1109,9 +1109,15 @@ Does not check type and subprogram indentation."
(let (icol cont (case-fold-search t) (pnt (point)))
(save-excursion
(if (not (f90-previous-statement))
- ;; First statement in buffer.
+ ;; If f90-previous-statement returns nil, we must have been
+ ;; called from on or before the first line of the first statement.
(setq icol (if (save-excursion
- (f90-next-statement)
+ ;; f90-previous-statement has moved us over
+ ;; comment/blank lines, so we need to get
+ ;; back to the first code statement.
+ (when (looking-at "[ \t]*\\([!#]\\|$\\)")
+ (f90-next-statement))
+ (skip-chars-forward " \t0-9")
(f90-looking-at-program-block-start))
0
;; No explicit PROGRAM start statement.