char book_path[255] = { BOOKDIR };
char log_path[255] = { LOGDIR };
char tb_path[255] = { TBDIR };
char rc_path[255] = { RCDIR };
I think that defining a LONGEST_PATH_LENGTH=255 constant and checking against it in various parts of the code would make it a lot more robust against Java programmers.

Although I'm a very unskilled C programmer and don't have any knowledge of computer chess programming I found navigating through Crafty's code easy. It's not only a competitive chess engine, but its code base is a great learning tool to the business of computer chess.