NeoMutt
2025-09-05-43-g177ed6
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
extended.c
Go to the documentation of this file.
1
22
28
29
#include "config.h"
30
#include <stdbool.h>
31
#include <strings.h>
32
#include "
mutt/lib.h
"
33
#include "
gui/lib.h
"
34
#include "
lib.h
"
35
39
struct
Extkey
40
{
41
const
char
*
name
;
42
const
char
*
sym
;
43
};
44
48
static
const
struct
Extkey
ExtKeys
[] = {
49
{
"<c-up>"
,
"kUP5"
},
50
{
"<s-up>"
,
"kUP"
},
51
{
"<a-up>"
,
"kUP3"
},
52
53
{
"<s-down>"
,
"kDN"
},
54
{
"<a-down>"
,
"kDN3"
},
55
{
"<c-down>"
,
"kDN5"
},
56
57
{
"<c-right>"
,
"kRIT5"
},
58
{
"<s-right>"
,
"kRIT"
},
59
{
"<a-right>"
,
"kRIT3"
},
60
61
{
"<s-left>"
,
"kLFT"
},
62
{
"<a-left>"
,
"kLFT3"
},
63
{
"<c-left>"
,
"kLFT5"
},
64
65
{
"<s-home>"
,
"kHOM"
},
66
{
"<a-home>"
,
"kHOM3"
},
67
{
"<c-home>"
,
"kHOM5"
},
68
69
{
"<s-end>"
,
"kEND"
},
70
{
"<a-end>"
,
"kEND3"
},
71
{
"<c-end>"
,
"kEND5"
},
72
73
{
"<s-next>"
,
"kNXT"
},
74
{
"<a-next>"
,
"kNXT3"
},
75
{
"<c-next>"
,
"kNXT5"
},
76
77
{
"<s-prev>"
,
"kPRV"
},
78
{
"<a-prev>"
,
"kPRV3"
},
79
{
"<c-prev>"
,
"kPRV5"
},
80
81
{ 0, 0 },
82
};
83
93
static
const
char
*
find_ext_name
(
const
char
*key)
94
{
95
for
(
int
j = 0;
ExtKeys
[j].name; j++)
96
{
97
if
(strcasecmp(key,
ExtKeys
[j].
name
) == 0)
98
return
ExtKeys
[j].sym;
99
}
100
return
0;
101
}
102
113
void
init_extended_keys
(
void
)
114
{
115
use_extended_names(
true
);
116
117
for
(
int
j = 0;
KeyNames
[j].name; j++)
118
{
119
if
(
KeyNames
[j].value == -1)
120
{
121
const
char
*keyname =
find_ext_name
(
KeyNames
[j].
name
);
122
123
if
(keyname)
124
{
125
const
char
*s =
mutt_tigetstr
((
char
*) keyname);
126
if
(s && ((
long
) (s) != -1))
127
{
128
int
code = key_defined(s);
129
if
(code > 0)
130
KeyNames
[j].value = code;
131
}
132
}
133
}
134
}
135
}
ExtKeys
static const struct Extkey ExtKeys[]
Mapping between NeoMutt and Curses key names.
Definition
extended.c:48
find_ext_name
static const char * find_ext_name(const char *key)
Find the curses name for a key.
Definition
extended.c:93
init_extended_keys
void init_extended_keys(void)
Initialise map of ncurses extended keys.
Definition
extended.c:113
lib.h
Convenience wrapper for the gui headers.
KeyNames
struct Mapping KeyNames[]
Key name lookup table.
Definition
lib.c:59
lib.h
Manage keymappings.
lib.h
Convenience wrapper for the library headers.
Extkey
Map key names from NeoMutt's style to Curses style.
Definition
extended.c:40
Extkey::sym
const char * sym
Curses key name.
Definition
extended.c:42
Extkey::name
const char * name
NeoMutt key name.
Definition
extended.c:41
mutt_tigetstr
const char * mutt_tigetstr(const char *name)
Get terminal capabilities.
Definition
terminal.c:68