I added
#include <stdlib.h>
#include <string.h>
as appropriate per the compile-time error messages. Down to 2 error messages, but it compiles and runs.
Now I'm going through command.c, commenting the controls for the game so I can reassign them to less-stupid keys.
Oh, one last thing - does anyone want the modified source code? I could upload it to github, but bear in mind I'd need to learn how to use git! I could compress it into a 7z or tar.gz and upload it here if anyone's interested.
EDIT
Took me a while to figure out how to escape single-quotes with grep. Should have tried the obvious, a backslash. Saving this for later perusal.
[2]person@computer ~/Games/arogue5.8.2-src $ grep \'h\' *.c *.h -n
command.c:132: case 'h': case 'j': case 'k': case 'l':
command.c:148: case 'h': case 'j': case 'k': case 'l':
command.c:169: case 'h': case 'j': case 'k': case 'l':
command.c:184: when 'h' : do_move(0, -1); // move 1 left was h
command.c:192: when 'H' : do_run('h'); // move
mdport.c:1066: case 't': ch = 'h'; break;
mdport.c:1090: case KEY_LEFT : ch = 'h'; break;
mdport.c:1103: case KEY_B1 : ch = 'h'; break;
move.c:33: { 'h', '\0', 'l' },
move.c:833: case 'h':
rogue.c:421: 'h', " left",
rogue.c:574: 10, TRUE, TRUE, 'h', "8-10",
rogue.c:1014: 15, TRUE, TRUE, 'h', "5-7",
rogue.c:1266: 100, TRUE, FALSE, 'h', "16",
util.c:422: case 'h': case'H': delta.y = 0; delta.x = -1;
util.c:504: if (runch == 'h' || runch == 'l') horiz = TRUE;
util.c:653: case 'h':