get off the exit on error
fix an handle error
add bad end handle
optimize the code
optimize the code
recover code
Revert "optimize the code"

This reverts commit 0a69c05e3fe62d94688a4bec9bd83140305fc419.

Conflicts:
	src/parse.c