changeset 3486:a4b23b25b671

(add-log-current-defun): Handle Fortran.
author Richard M. Stallman <rms@gnu.org>
date Sat, 05 Jun 1993 02:34:12 +0000
parents c2dbfca5e1de
children 8c151ebeff9c
files lisp/add-log.el
diffstat 1 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/add-log.el	Sat Jun 05 02:07:08 1993 +0000
+++ b/lisp/add-log.el	Sat Jun 05 02:34:12 1993 +0000
@@ -373,6 +373,25 @@
 		 (if (re-search-backward "^@node[ \t]+\\([^,]+\\)," nil t)
 		     (buffer-substring (match-beginning 1)
 				       (match-end 1))))
+                ((eq major-mode 'fortran-mode)
+                 ;; must be inside function body for this to work
+                 (beginning-of-fortran-subprogram)
+                 (let ((case-fold-search t)) ; case-insensitive
+                   ;; search for fortran subprogram start
+                   (if (re-search-forward
+			 "^[ \t]*\\(program\\|subroutine\\|function\
+\\|[ \ta-z0-9*]*[ \t]+function\\)"
+			 string nil t)
+                       (progn
+                         ;; move to EOL or before first left paren
+                         (if (re-search-forward "[(\n]" nil t)
+			     (progn (forward-char -1)
+				    (skip-chars-backward " \t"))
+			   (end-of-line))
+			 ;; Use the name preceding that.
+                         (buffer-substring (point)
+                                           (progn (forward-sexp -1)
+                                                  (point)))))))
 		(t
 		 ;; If all else fails, try heuristics
 		 (let (case-fold-search)