Rename our getline() to get_line() to prevent a conflict with POSIX
getline() declared in stdio.h.
Remove dangerous call to gets(). OpenBSD does not have gets(), C99
deprecated it and C11 removed it.
Also change spelling "sheild" to "shield".
Unless it is packed, a Pascal char is a C int. Using C types, hilo.p
passed an int *buf to uread(), which expected a char *buf. Then
uread() wrote the char on the end of the int. This worked on
little-endian platforms. This failed on big-endian platforms, as
writing the value to the big end of an int multiplied it by 16777216.
The fix is to use a packed array [0..0] of char in Pascal. I also
change 'string' to a packed array, though this is not a necessary part
of the fix.