Mercurial > emacs
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)