Annotation of src/usr.bin/mg/ttykbd.c, Revision 1.18
1.18 ! bcallah 1: /* $OpenBSD: ttykbd.c,v 1.17 2015/03/17 18:08:52 bcallah Exp $ */
1.14 kjell 2:
3: /* This file is in the public domain. */
1.7 niklas 4:
1.1 deraadt 5: /*
6: * Name: MG 2a
1.2 millert 7: * Terminfo keyboard driver using key files
1.1 deraadt 8: * Created: 22-Nov-1987 Mic Kaczmarczik (mic@emx.cc.utexas.edu)
9: */
10:
1.18 ! bcallah 11: #include <sys/queue.h>
! 12: #include <signal.h>
! 13: #include <stdio.h>
! 14: #include <stdlib.h>
! 15: #include <term.h>
! 16:
1.6 millert 17: #include "def.h"
18: #include "kbd.h"
1.1 deraadt 19:
20: /*
21: * Get keyboard character. Very simple if you use keymaps and keys files.
22: */
23:
1.9 mickey 24: char *keystrings[] = {NULL};
1.1 deraadt 25:
26: /*
1.2 millert 27: * Turn on function keys using keypad_xmit, then load a keys file, if
28: * available. The keys file is located in the same manner as the startup
29: * file is, depending on what startupfile() does on your system.
1.1 deraadt 30: */
1.6 millert 31: void
1.11 cloder 32: ttykeymapinit(void)
1.1 deraadt 33: {
1.6 millert 34: char *cp;
35:
1.2 millert 36: /* Bind keypad function keys. */
37: if (key_left)
1.8 art 38: dobindkey(fundamental_map, "backward-char", key_left);
1.2 millert 39: if (key_right)
1.8 art 40: dobindkey(fundamental_map, "forward-char", key_right);
1.2 millert 41: if (key_up)
1.8 art 42: dobindkey(fundamental_map, "previous-line", key_up);
1.2 millert 43: if (key_down)
1.8 art 44: dobindkey(fundamental_map, "next-line", key_down);
1.2 millert 45: if (key_beg)
1.8 art 46: dobindkey(fundamental_map, "beginning-of-line", key_beg);
1.4 millert 47: else if (key_home)
1.8 art 48: dobindkey(fundamental_map, "beginning-of-line", key_home);
1.2 millert 49: if (key_end)
1.8 art 50: dobindkey(fundamental_map, "end-of-line", key_end);
1.2 millert 51: if (key_npage)
1.8 art 52: dobindkey(fundamental_map, "scroll-up", key_npage);
1.2 millert 53: if (key_ppage)
1.8 art 54: dobindkey(fundamental_map, "scroll-down", key_ppage);
1.15 lum 55: if (key_dc)
56: dobindkey(fundamental_map, "delete-char", key_dc);
1.6 millert 57:
1.10 deraadt 58: if ((cp = getenv("TERM"))) {
1.6 millert 59: if (((cp = startupfile(cp)) != NULL) && (load(cp) != TRUE))
1.1 deraadt 60: ewprintf("Error reading key initialization file");
61: }
1.6 millert 62: if (keypad_xmit)
63: /* turn on keypad */
1.2 millert 64: putpad(keypad_xmit, 1);
1.1 deraadt 65: }
66:
67: /*
68: * Clean up the keyboard -- called by tttidy()
69: */
1.6 millert 70: void
1.11 cloder 71: ttykeymaptidy(void)
1.1 deraadt 72: {
1.2 millert 73: if (keypad_local)
1.6 millert 74: /* turn off keypad */
75: putpad(keypad_local, 1);
1.12 deraadt 76: }
77: