If you are using

INDENT_FUNCTIONS=YES

then return statements do not de-indent the code, and only the beginning
of the next function will signify the zero indentation.

FUNCTION TEST1( y )

local x := 1

if y == x
return .f.
endif

return .t.

FUNCTION blork( y )

blah( y )

return blap( y )

---

Anything between

TEXT
ENDTEXT

is passed straight through to the output.

( this works identically to *+CLICKOFF and *+CLICKON )

---

if x=1.or.y=3.and..not.z=17
endif

correctly parses to:

if x = 1 .or. y = 3 .and. .not. z = 17
endif

---

The Declaration Buster was not able to ignore comments, which is fixed,
and also did not identify commands correctly. This is fixed, but it
costs quite a bit of time during the processing phase of the Declaration
Buster.

It was an unavoidable loss of processing speed.

---

I thought I had fixed the keyword being used as a variable and still
being dealt with as if it was a structural command. I believe this is
really fixed now, so you can do things like:

do while .t.

while = 7
for = 8
do = 15

if while + for == do
exit
endif

enddo

Try that with any other reindenter!