Both under llvm and gcc reports issues with the current source code:
- multiple definition of functions, by including prototypes.h everywhere
- return; in non-void functions (by default a warning in gcc, an error in llvm)
As such, it doesn't compile under llvm 11 (tested under FreeBSD 13) or gcc 10.2 (tested under Debian Bullseye).
Code should be cleaned up to respect modern standards.