Move initialization and quit handling to a separate function to simplify
the conversion to Guile control flow facilities.
* src/keyboard.c (struct read_char_state): New data type.
(read_char): Move most of this function to `read_char_1'. Initialize a
state structure and a `longjmp' point for quits, then call
`read_char_1'.
(read_char_1): New function.
(save_getcjmp, restore_getcjmp): Take a pointer to a `jmp_buf' as an
argument. All callers changed.