diff options
Diffstat (limited to 'handlekeys.h')
| -rw-r--r-- | handlekeys.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/handlekeys.h b/handlekeys.h index 192d96c..9678131 100644 --- a/handlekeys.h +++ b/handlekeys.h | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | 5 | ||
| 6 | /* An input loop that handles keystrokes and terminal CSI commands. | 6 | /* An input loop that handles keystrokes and terminal CSI commands. |
| 7 | * | 7 | * |
| 8 | * Reads stdin, trying to convert raw keystrokes into something more readable. | 8 | * Reads stdin, trying to translate raw keystrokes into something more readable. |
| 9 | * See the keys[] array at the top of handlekeys.c for what byte sequences get | 9 | * See the keys[] array at the top of handlekeys.c for what byte sequences get |
| 10 | * translated into what key names. See dumbsh.c for an example of usage. | 10 | * translated into what key names. See dumbsh.c for an example of usage. |
| 11 | * A 0.1 second delay is used to detect the Esc key being pressed, and not Esc | 11 | * A 0.1 second delay is used to detect the Esc key being pressed, and not Esc |
| @@ -27,9 +27,15 @@ | |||
| 27 | * handle_CSI - a callback to handle terminal CSI commands. | 27 | * handle_CSI - a callback to handle terminal CSI commands. |
| 28 | * | 28 | * |
| 29 | * handle_sequence is called when a complete keystroke sequence has been | 29 | * handle_sequence is called when a complete keystroke sequence has been |
| 30 | * accumulated. It should return 1 if the sequence has been dealt with, | 30 | * accumulated. The sequence argument holds the accumulated keystrokes. |
| 31 | * otherwise it should return 0, then handle_keys will keep adding more | 31 | * The translated argument flags if any have been translated, otherwise you |
| 32 | * complete keystroke sequences on the end, and try again later. | 32 | * can assume it's all ordinary characters. |
| 33 | * | ||
| 34 | * handle_keys should return 1 if the sequence has been dealt with, or ignored. | ||
| 35 | * It should return 0, if handle_keys should keep adding more | ||
| 36 | * translated keystroke sequences on the end, and try again later. | ||
| 37 | * 0 should really only be used if it's a partial match, and we need more | ||
| 38 | * keys in the sequence to make a full match. | ||
| 33 | * | 39 | * |
| 34 | * handle_CSI is called when a complete terminal CSI command has been | 40 | * handle_CSI is called when a complete terminal CSI command has been |
| 35 | * detected. The command argument is the full CSI command code, including | 41 | * detected. The command argument is the full CSI command code, including |
| @@ -45,7 +51,7 @@ | |||
| 45 | * get accumulated until fully recognised by the user code. | 51 | * get accumulated until fully recognised by the user code. |
| 46 | */ | 52 | */ |
| 47 | void handle_keys(long extra, | 53 | void handle_keys(long extra, |
| 48 | int (*handle_sequence)(long extra, char *sequence), | 54 | int (*handle_sequence)(long extra, char *sequence, int isTranslated), |
| 49 | void (*handle_CSI)(long extra, char *command, int *params, int count)); | 55 | void (*handle_CSI)(long extra, char *command, int *params, int count)); |
| 50 | 56 | ||
| 51 | 57 | ||
