Subject: bug#8691: 23.2; In fortran 90 mode, f90-indent-subprogram gets confused by bind(c) type definitions

From: Glenn Morris <[email-masked]>
Date: Wed, 18 May 2011 15:10:58 -0400

Hello, I think this patch fixes it. You can test it with:

(setq f90-type-def-re "...value-from-patch...")

*** lisp/progmodes/f90.el	2011-02-04 03:21:11 +0000
--- lisp/progmodes/f90.el	2011-05-18 19:09:26 +0000
***************
*** 809,816 ****
    ;; type word
    ;; type :: word
    ;; type, stuff :: word
    ;; NOT "type ("
!   "\\<\\(type\\)\\>\\(?:[^()\n]*::\\)?[ \t]*\\(\\sw+\\)"
    "Regexp matching the definition of a derived type.")
  
  (defconst f90-typeis-re
--- 809,818 ----
    ;; type word
    ;; type :: word
    ;; type, stuff :: word
+   ;; type, bind(c) :: word
    ;; NOT "type ("
!   "\\<\\(type\\)\\>\\(?:\\(?:[^()\n]*\\|\
! .*,[ \t]*bind[ \t]*([ \t]*c[ \t]*)[ \t]*\\)::\\)?[ \t]*\\(\\sw+\\)"
    "Regexp matching the definition of a derived type.")
  
  (defconst f90-typeis-re