In the function error() in main.c, change exit(errors); to exit(errors == 0 ? 0 : 1); This is because 256 errors looks exactly like 0 errors in UNIX systems... In the function main() in main.c, change return errors; to exit(errors == 0 ? 0 : 1); This is for the same reason.