# HG changeset patch # User Glenn Morris # Date 1274404437 25200 # Node ID fc613fd476ffed618a66ecff1eededca93fa7af6 # Parent 46ac70591556bac54b43eedbbb1542fe5a3f43b6 Derive Fortran modes from prog-mode. * progmodes/fortran.el (fortran-mode): * progmodes/f90.el (f90-mode): Derive from prog-mode. diff -r 46ac70591556 -r fc613fd476ff lisp/ChangeLog --- a/lisp/ChangeLog Fri May 21 03:05:50 2010 +0200 +++ b/lisp/ChangeLog Thu May 20 18:13:57 2010 -0700 @@ -7,6 +7,9 @@ 2010-05-21 Glenn Morris + * progmodes/fortran.el (fortran-mode): + * progmodes/f90.el (f90-mode): Derive from prog-mode. + * loadup.el [CANNOT_DUMP]: Update for bootstrap-emacs no longer having a relative path in src/Makefile.in. diff -r 46ac70591556 -r fc613fd476ff lisp/progmodes/f90.el --- a/lisp/progmodes/f90.el Fri May 21 03:05:50 2010 +0200 +++ b/lisp/progmodes/f90.el Thu May 20 18:13:57 2010 -0700 @@ -1008,7 +1008,7 @@ :regexp "\\(?:[^[:word:]_`]\\|^\\)\\(`?[[:word:]_]+\\)[^[:word:]_]*") ;;;###autoload -(defun f90-mode () +(define-derived-mode f90-mode prog-mode "F90" "Major mode for editing Fortran 90,95 code in free format. For fixed format code, use `fortran-mode'. @@ -1065,13 +1065,9 @@ Turning on F90 mode calls the value of the variable `f90-mode-hook' with no args, if that value is non-nil." - (interactive) - (kill-all-local-variables) - (setq major-mode 'f90-mode - mode-name "F90" - local-abbrev-table f90-mode-abbrev-table) - (set-syntax-table f90-mode-syntax-table) - (use-local-map f90-mode-map) + :group 'f90 + :syntax-table f90-mode-syntax-table + :abbrev-table f90-mode-abbrev-table (set (make-local-variable 'indent-line-function) 'f90-indent-line) (set (make-local-variable 'indent-region-function) 'f90-indent-region) (set (make-local-variable 'require-final-newline) mode-require-final-newline) @@ -1094,8 +1090,7 @@ 'f90-beginning-of-subprogram) (set (make-local-variable 'end-of-defun-function) 'f90-end-of-subprogram) (set (make-local-variable 'add-log-current-defun-function) - #'f90-current-defun) - (run-mode-hooks 'f90-mode-hook)) + #'f90-current-defun)) ;; Inline-functions. diff -r 46ac70591556 -r fc613fd476ff lisp/progmodes/fortran.el --- a/lisp/progmodes/fortran.el Fri May 21 03:05:50 2010 +0200 +++ b/lisp/progmodes/fortran.el Thu May 20 18:13:57 2010 -0700 @@ -778,7 +778,7 @@ ;;;###autoload -(defun fortran-mode () +(define-derived-mode fortran-mode prog-mode "Fortran" "Major mode for editing Fortran code in fixed format. For free format code, use `f90-mode'. @@ -848,13 +848,9 @@ Turning on Fortran mode calls the value of the variable `fortran-mode-hook' with no args, if that value is non-nil." - (interactive) - (kill-all-local-variables) - (setq major-mode 'fortran-mode - mode-name "Fortran" - local-abbrev-table fortran-mode-abbrev-table) - (set-syntax-table fortran-mode-syntax-table) - (use-local-map fortran-mode-map) + :group 'fortran + :syntax-table fortran-mode-syntax-table + :abbrev-table fortran-mode-abbrev-table (set (make-local-variable 'indent-line-function) 'fortran-indent-line) (set (make-local-variable 'indent-region-function) (lambda (start end) @@ -906,8 +902,7 @@ #'fortran-current-defun) (set (make-local-variable 'dabbrev-case-fold-search) 'case-fold-search) (set (make-local-variable 'gud-find-expr-function) 'fortran-gud-find-expr) - (add-hook 'hack-local-variables-hook 'fortran-hack-local-variables nil t) - (run-mode-hooks 'fortran-mode-hook)) + (add-hook 'hack-local-variables-hook 'fortran-hack-local-variables nil t)) (defun fortran-line-length (nchars &optional global)