Hi Eli, On 2024-09-12 at 23:16 -07, Eli Zaretskii <e...@gnu.org> wrote... >> --- a/lisp/progmodes/fortran.el >> +++ b/lisp/progmodes/fortran.el >> @@ -1631,7 +1631,7 @@ fortran-calculate-indent >> (setq icol (+ icol fortran-if-indent))) >> ((looking-at "where[ \t]*(.*)[ \t]*\n") >> (setq icol (+ icol fortran-if-indent))) >> - ((looking-at "do\\b") >> + ((looking-at "do[\\ |0-9]+.*=[\\ a-z0-9_]*,[\\ a-z0-9_]*") > > What do you intend with the likes of "[\\ |0-9]+" ? Is this a > character alternative, or is that an alternative of matches? If the > former, there's no need to escape a backslash, but then why is '|' > there?
I agree the '|' is not needed. I'm not sure what 'character alternative' or 'alternative of matches' means. I meant the '|' as an "OR" (is that an alterntative?), but realize now it is not needed. I now suggest "do[\\ 0-9]+.*=[\\ a-z0-9_]*,[\\ a-z0-9_]*" The pattern attempts to match "do", then either (space, numbers, or nothing), then equal sign, then something that looks like two numbers or valid variable names separated by a comma. I used these as tests: do42I=1,42 ! match do_foo = bar() do i = 1,42 ! match do i = 1,n ! match do i_var = a_var,b_var ! match do i_var5 = a_var,b_var ! match do42i_var = a_var,b_var ! match DO42 = [1,2] DO6I=5 7 DO6I=5,7 ! match do_not_loop = [a,b] donot_loop = (/4,5/) donotloop = 42 do_notloop = 42 Should I submit an updated patch? Or is the patch applier able to make this small change? Thanks, -k.