]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/progmodes/f90.el (f90-type-def-re): Add "type, extends".
authorGlenn Morris <rgm@gnu.org>
Thu, 28 May 2015 06:10:46 +0000 (23:10 -0700)
committerGlenn Morris <rgm@gnu.org>
Thu, 28 May 2015 06:10:46 +0000 (23:10 -0700)
(f90-no-block-limit): Add "enum".  (Bug#20680)

* test/automated/f90.el (f90-test-bug20680, f90-test-bug20680b):
New tests.

lisp/progmodes/f90.el
test/automated/f90.el

index 6264d3b7b828605a477a9964bf18622d578e1574..756c5af24e41f1798d70cc3142537c8bac1eae22 100644 (file)
@@ -900,9 +900,11 @@ Can be overridden by the value of `font-lock-maximum-decoration'.")
   ;; type :: word
   ;; type, stuff :: word
   ;; type, bind(c) :: word
+  ;; type, extends(stuff) :: word
   ;; NOT "type ("
   "\\_<\\(type\\)\\_>\\(?:\\(?:[^()\n]*\\|\
-.*,[ \t]*bind[ \t]*([ \t]*c[ \t]*)[ \t]*\\)::\\)?[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)"
+.*,[ \t]*\\(?:bind\\|extends\\)[ \t]*(.*)[ \t]*\\)::\\)?\
+[ \t]*\\(\\(?:\\sw\\|\\s_\\)+\\)"
   "Regexp matching the definition of a derived type.")
 
 (defconst f90-typeis-re
@@ -1450,7 +1452,7 @@ if all else fails."
     (not (or (looking-at "end")
              (looking-at "\\(do\\|if\\|else\\(if\\|where\\)?\
 \\|select[ \t]*\\(case\\|type\\)\\|case\\|where\\|forall\\|\
-block\\|critical\\)\\_>")
+block\\|critical\\|enum\\)\\_>")
              (looking-at "\\(program\\|\\(?:sub\\)?module\\|\
 \\(?:abstract[ \t]*\\)?interface\\|block[ \t]*data\\)\\_>")
              (looking-at "\\(contains\\|\\(?:\\sw\\|\\s_\\)+[ \t]*:\\)")
index 1cb2f035a6b51c695568c2d71fbf6a1a1abc0422..4c1abc34c4738bde67b7c2a513c3c8d0cf94c6a7 100644 (file)
@@ -188,5 +188,30 @@ end program prog")
     (f90-end-of-subprogram)
     (should (= (point) (point-max)))))
 
+(ert-deftest f90-test-bug20680 ()
+  "Test for http://debbugs.gnu.org/20680 ."
+  (with-temp-buffer
+    (f90-mode)
+    (insert "module modname
+type, extends ( sometype ) :: type1
+integer :: part1
+end type type1
+end module modname")
+    (f90-indent-subprogram)
+    (forward-line -1)
+    (should (= 2 (current-indentation)))))
+
+(ert-deftest f90-test-bug20680b ()
+  "Test for http://debbugs.gnu.org/20680 ."
+  (with-temp-buffer
+    (f90-mode)
+    (insert "module modname
+enum, bind(c)
+enumerator :: e1 = 0
+end enum
+end module modname")
+    (f90-indent-subprogram)
+    (forward-line -1)
+    (should (= 2 (current-indentation)))))
 
 ;;; f90.el ends here