From: Glenn Morris Date: Fri, 21 May 2010 01:13:57 +0000 (-0700) Subject: Derive Fortran modes from prog-mode. X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~205^2~21 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e75c1e7dc4f08f6ebc8984d2b08edce6906ccf50;p=emacs.git Derive Fortran modes from prog-mode. * progmodes/fortran.el (fortran-mode): * progmodes/f90.el (f90-mode): Derive from prog-mode. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 15d3d691558..a39380087c5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 --git a/lisp/progmodes/f90.el b/lisp/progmodes/f90.el index 0a3c96d7894..64c716208e9 100644 --- a/lisp/progmodes/f90.el +++ b/lisp/progmodes/f90.el @@ -1008,7 +1008,7 @@ Set subexpression 1 in the match-data to the name of the type." :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 @@ Variables controlling indentation style and extra features: 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 @@ with no args, if that value is non-nil." '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 --git a/lisp/progmodes/fortran.el b/lisp/progmodes/fortran.el index 3784ba787c4..c37744bfe45 100644 --- a/lisp/progmodes/fortran.el +++ b/lisp/progmodes/fortran.el @@ -778,7 +778,7 @@ Used in the Fortran entry in `hs-special-modes-alist'.") ;;;###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 @@ Variables controlling indentation style and extra features: 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 @@ with no args, if that value is non-nil." #'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)