Changeset View
Changeset View
Standalone View
Standalone View
contrib/mg/ttykbd.c
- This file was added.
| /* $OpenBSD: ttykbd.c,v 1.20 2021/02/23 08:10:51 lum Exp $ */ | |||||
| /* This file is in the public domain. */ | |||||
| /* | |||||
| * Name: MG 2a | |||||
| * Terminfo keyboard driver using key files | |||||
| * Created: 22-Nov-1987 Mic Kaczmarczik (mic@emx.cc.utexas.edu) | |||||
| */ | |||||
| #include <sys/queue.h> | |||||
| #include <signal.h> | |||||
| #include <stdio.h> | |||||
| #include <stdlib.h> | |||||
| #include <term.h> | |||||
| #include "def.h" | |||||
| #include "kbd.h" | |||||
| /* | |||||
| * Get keyboard character. Very simple if you use keymaps and keys files. | |||||
| */ | |||||
| char *keystrings[] = {NULL}; | |||||
| /* | |||||
| * Turn on function keys using keypad_xmit, then load a keys file, if | |||||
| * available. The keys file is located in the same manner as the startup | |||||
| * file is, depending on what startupfile() does on your system. | |||||
| */ | |||||
| void | |||||
| ttykeymapinit(void) | |||||
| { | |||||
| char *cp; | |||||
| /* Bind keypad function keys. */ | |||||
| if (key_left) | |||||
| dobindkey(fundamental_map, "backward-char", key_left); | |||||
| if (key_right) | |||||
| dobindkey(fundamental_map, "forward-char", key_right); | |||||
| if (key_up) | |||||
| dobindkey(fundamental_map, "previous-line", key_up); | |||||
| if (key_down) | |||||
| dobindkey(fundamental_map, "next-line", key_down); | |||||
| if (key_beg) | |||||
| dobindkey(fundamental_map, "beginning-of-line", key_beg); | |||||
| else if (key_home) | |||||
| dobindkey(fundamental_map, "beginning-of-line", key_home); | |||||
| if (key_end) | |||||
| dobindkey(fundamental_map, "end-of-line", key_end); | |||||
| if (key_npage) | |||||
| dobindkey(fundamental_map, "scroll-up", key_npage); | |||||
| if (key_ppage) | |||||
| dobindkey(fundamental_map, "scroll-down", key_ppage); | |||||
| if (key_ic) | |||||
| dobindkey(fundamental_map, "overwrite-mode", key_ic); | |||||
| if (key_dc) | |||||
| dobindkey(fundamental_map, "delete-char", key_dc); | |||||
| if ((cp = getenv("TERM"))) { | |||||
| if (((cp = startupfile(cp, NULL)) != NULL) && | |||||
| (load(cp) != TRUE)) | |||||
| ewprintf("Error reading key initialization file"); | |||||
| } | |||||
| if (keypad_xmit) | |||||
| /* turn on keypad */ | |||||
| putpad(keypad_xmit, 1); | |||||
| } | |||||
| /* | |||||
| * Clean up the keyboard -- called by tttidy() | |||||
| */ | |||||
| void | |||||
| ttykeymaptidy(void) | |||||
| { | |||||
| if (keypad_local) | |||||
| /* turn off keypad */ | |||||
| putpad(keypad_local, 1); | |||||
| } | |||||