You should get the "not all paths return a value" in gcc if you use "-Wall" as the compile flags.
And get_input does have ways of exiting without returning a value, never mind that you never CHECK the value in the calling code, so it will happily continue trying to read new data when it's hit an end of file.
--
Mats