File Index
Files and directories
Sign in
FILE

keysyms.c

File preview with syntax highlighting.

linux-6.19.14/tools/perf/ui/keysyms.c C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2
 3#include "keysyms.h"
 4#include <linux/ctype.h>
 5#include <linux/kernel.h>
 6
 7const char *key_name(int key, char *bf, size_t size)
 8{
 9	if (isprint(key)) {
10		scnprintf(bf, size, "%c", key); 
11	} else if (key < 32) {
12		scnprintf(bf, size, "Ctrl+%c", key + '@'); 
13	} else {
14		const char *name = NULL;
15
16		switch (key) {
17		case K_DOWN:	name = "Down";	    break;
18		case K_END:	name = "End";	    break;
19		case K_ENTER:	name = "Enter";	    break;
20		case K_ESC:	name = "ESC";	    break;
21		case K_F1:	name = "F1";	    break;
22		case K_HOME:	name = "Home";	    break;
23		case K_LEFT:	name = "Left";	    break;
24		case K_PGDN:	name = "PgDown";    break;
25		case K_PGUP:	name = "PgUp";	    break;
26		case K_RIGHT:	name = "Right";	    break;
27		case K_TAB:	name = "Tab";	    break;
28		case K_UNTAB:	name = "Untab";	    break;
29		case K_UP:	name = "Up";	    break;
30		case K_BKSPC:	name = "Backspace"; break;
31		case K_DEL:	name = "Del";	    break;
32		default:
33			if (key >= SL_KEY_F(1) && key <= SL_KEY_F(63))
34				scnprintf(bf, size, "F%d", key - SL_KEY_F(0));
35			else
36				scnprintf(bf, size, "Unknown (%d)", key);
37		}
38
39		if (name)
40			scnprintf(bf, size, "%s", name);
41	}
42
43	return bf;
44}
~/ Read-only file preview.