enum
どうせ enum を使うなら、ちゃんと enum を型として扱った方がいい。
つまり、
void local_error_handle(int error_type, char* string);
ではなく、
void local_error_handle(enum local_error_types error_type, char* string);
の方がいい。ついでに言えば、
void local_error_handle(enum local_error_types error_type, const char* string);
の方がもっと良い。
あと、こういうケースでは
default: assert(0); /* SHOULD NOT REACH HERE */
なんてのも定番な気がする。