# HG changeset patch # User Richard M. Stallman # Date 739247652 0 # Node ID a4b23b25b671e0ae7947dae97fa4311288225867 # Parent c2dbfca5e1def0abfd14baac25460a8e364c34bb (add-log-current-defun): Handle Fortran. diff -r c2dbfca5e1de -r a4b23b25b671 lisp/add-log.el --- 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)