Skip to content

Commit 8858498

Browse files
committed
patch 8.0.0697: recorded key sequences may become invalid
Problem: Recorded key sequences may become invalid. Solution: Add back KE_SNIFF removed in 7.4.1433. Use fixed numbers for the key_extra enum.
1 parent cce1cf1 commit 8858498

2 files changed

Lines changed: 116 additions & 111 deletions

File tree

src/keymap.h

Lines changed: 114 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112

113113
/* Used for the sgr mouse. */
114114
#define KS_SGR_MOUSE 237
115-
#define KS_SGR_MOUSE_RELEASE 236 /* Release */
115+
#define KS_SGR_MOUSE_RELEASE 236
116116

117117
/*
118118
* Filler used after KS_SPECIAL and others
@@ -140,132 +140,135 @@
140140

141141
/*
142142
* Codes for keys that do not have a termcap name.
143+
* The numbers are fixed to make sure that recorded key sequences remain valid.
144+
* Add new entries at the end, not halfway.
143145
*
144146
* K_SPECIAL KS_EXTRA KE_xxx
145147
*/
146148
enum key_extra
147149
{
148150
KE_NAME = 3 /* name of this terminal entry */
149151

150-
, KE_S_UP /* shift-up */
151-
, KE_S_DOWN /* shift-down */
152-
153-
, KE_S_F1 /* shifted function keys */
154-
, KE_S_F2
155-
, KE_S_F3
156-
, KE_S_F4
157-
, KE_S_F5
158-
, KE_S_F6
159-
, KE_S_F7
160-
, KE_S_F8
161-
, KE_S_F9
162-
, KE_S_F10
163-
164-
, KE_S_F11
165-
, KE_S_F12
166-
, KE_S_F13
167-
, KE_S_F14
168-
, KE_S_F15
169-
, KE_S_F16
170-
, KE_S_F17
171-
, KE_S_F18
172-
, KE_S_F19
173-
, KE_S_F20
174-
175-
, KE_S_F21
176-
, KE_S_F22
177-
, KE_S_F23
178-
, KE_S_F24
179-
, KE_S_F25
180-
, KE_S_F26
181-
, KE_S_F27
182-
, KE_S_F28
183-
, KE_S_F29
184-
, KE_S_F30
185-
186-
, KE_S_F31
187-
, KE_S_F32
188-
, KE_S_F33
189-
, KE_S_F34
190-
, KE_S_F35
191-
, KE_S_F36
192-
, KE_S_F37
193-
194-
, KE_MOUSE /* mouse event start */
152+
, KE_S_UP = 4 /* shift-up */
153+
, KE_S_DOWN = 5 /* shift-down */
154+
155+
, KE_S_F1 = 6 /* shifted function keys */
156+
, KE_S_F2 = 7
157+
, KE_S_F3 = 8
158+
, KE_S_F4 = 9
159+
, KE_S_F5 = 10
160+
, KE_S_F6 = 11
161+
, KE_S_F7 = 12
162+
, KE_S_F8 = 13
163+
, KE_S_F9 = 14
164+
, KE_S_F10 = 15
165+
166+
, KE_S_F11 = 16
167+
, KE_S_F12 = 17
168+
, KE_S_F13 = 18
169+
, KE_S_F14 = 19
170+
, KE_S_F15 = 20
171+
, KE_S_F16 = 21
172+
, KE_S_F17 = 22
173+
, KE_S_F18 = 23
174+
, KE_S_F19 = 24
175+
, KE_S_F20 = 25
176+
177+
, KE_S_F21 = 26
178+
, KE_S_F22 = 27
179+
, KE_S_F23 = 28
180+
, KE_S_F24 = 29
181+
, KE_S_F25 = 30
182+
, KE_S_F26 = 31
183+
, KE_S_F27 = 32
184+
, KE_S_F28 = 33
185+
, KE_S_F29 = 34
186+
, KE_S_F30 = 35
187+
188+
, KE_S_F31 = 36
189+
, KE_S_F32 = 37
190+
, KE_S_F33 = 38
191+
, KE_S_F34 = 39
192+
, KE_S_F35 = 40
193+
, KE_S_F36 = 41
194+
, KE_S_F37 = 42
195+
196+
, KE_MOUSE = 43 /* mouse event start */
195197

196198
/*
197199
* Symbols for pseudo keys which are translated from the real key symbols
198200
* above.
199201
*/
200-
, KE_LEFTMOUSE /* Left mouse button click */
201-
, KE_LEFTDRAG /* Drag with left mouse button down */
202-
, KE_LEFTRELEASE /* Left mouse button release */
203-
, KE_MIDDLEMOUSE /* Middle mouse button click */
204-
, KE_MIDDLEDRAG /* Drag with middle mouse button down */
205-
, KE_MIDDLERELEASE /* Middle mouse button release */
206-
, KE_RIGHTMOUSE /* Right mouse button click */
207-
, KE_RIGHTDRAG /* Drag with right mouse button down */
208-
, KE_RIGHTRELEASE /* Right mouse button release */
209-
210-
, KE_IGNORE /* Ignored mouse drag/release */
211-
212-
, KE_TAB /* unshifted TAB key */
213-
, KE_S_TAB_OLD /* shifted TAB key (no longer used) */
214-
215-
, KE_XF1 /* extra vt100 function keys for xterm */
216-
, KE_XF2
217-
, KE_XF3
218-
, KE_XF4
219-
, KE_XEND /* extra (vt100) end key for xterm */
220-
, KE_ZEND /* extra (vt100) end key for xterm */
221-
, KE_XHOME /* extra (vt100) home key for xterm */
222-
, KE_ZHOME /* extra (vt100) home key for xterm */
223-
, KE_XUP /* extra vt100 cursor keys for xterm */
224-
, KE_XDOWN
225-
, KE_XLEFT
226-
, KE_XRIGHT
227-
228-
, KE_LEFTMOUSE_NM /* non-mappable Left mouse button click */
229-
, KE_LEFTRELEASE_NM /* non-mappable left mouse button release */
230-
231-
, KE_S_XF1 /* extra vt100 shifted function keys for xterm */
232-
, KE_S_XF2
233-
, KE_S_XF3
234-
, KE_S_XF4
202+
, KE_LEFTMOUSE = 44 /* Left mouse button click */
203+
, KE_LEFTDRAG = 45 /* Drag with left mouse button down */
204+
, KE_LEFTRELEASE = 46 /* Left mouse button release */
205+
, KE_MIDDLEMOUSE = 47 /* Middle mouse button click */
206+
, KE_MIDDLEDRAG = 48 /* Drag with middle mouse button down */
207+
, KE_MIDDLERELEASE = 49 /* Middle mouse button release */
208+
, KE_RIGHTMOUSE = 50 /* Right mouse button click */
209+
, KE_RIGHTDRAG = 51 /* Drag with right mouse button down */
210+
, KE_RIGHTRELEASE = 52 /* Right mouse button release */
211+
212+
, KE_IGNORE = 53 /* Ignored mouse drag/release */
213+
214+
, KE_TAB = 54 /* unshifted TAB key */
215+
, KE_S_TAB_OLD = 55 /* shifted TAB key (no longer used) */
216+
217+
, KE_SNIFF_UNUSED = 56 /* obsolete */
218+
, KE_XF1 = 57 /* extra vt100 function keys for xterm */
219+
, KE_XF2 = 58
220+
, KE_XF3 = 59
221+
, KE_XF4 = 60
222+
, KE_XEND = 61 /* extra (vt100) end key for xterm */
223+
, KE_ZEND = 62 /* extra (vt100) end key for xterm */
224+
, KE_XHOME = 63 /* extra (vt100) home key for xterm */
225+
, KE_ZHOME = 64 /* extra (vt100) home key for xterm */
226+
, KE_XUP = 65 /* extra vt100 cursor keys for xterm */
227+
, KE_XDOWN = 66
228+
, KE_XLEFT = 67
229+
, KE_XRIGHT = 68
230+
231+
, KE_LEFTMOUSE_NM = 69 /* non-mappable Left mouse button click */
232+
, KE_LEFTRELEASE_NM = 70 /* non-mappable left mouse button release */
233+
234+
, KE_S_XF1 = 71 /* vt100 shifted function keys for xterm */
235+
, KE_S_XF2 = 72
236+
, KE_S_XF3 = 73
237+
, KE_S_XF4 = 74
235238

236239
/* NOTE: The scroll wheel events are inverted: i.e. UP is the same as
237240
* moving the actual scroll wheel down, LEFT is the same as moving the
238241
* scroll wheel right. */
239-
, KE_MOUSEDOWN /* scroll wheel pseudo-button Down */
240-
, KE_MOUSEUP /* scroll wheel pseudo-button Up */
241-
, KE_MOUSELEFT /* scroll wheel pseudo-button Left */
242-
, KE_MOUSERIGHT /* scroll wheel pseudo-button Right */
243-
244-
, KE_KINS /* keypad Insert key */
245-
, KE_KDEL /* keypad Delete key */
246-
247-
, KE_CSI /* CSI typed directly */
248-
, KE_SNR /* <SNR> */
249-
, KE_PLUG /* <Plug> */
250-
, KE_CMDWIN /* open command-line window from Command-line Mode */
251-
252-
, KE_C_LEFT /* control-left */
253-
, KE_C_RIGHT /* control-right */
254-
, KE_C_HOME /* control-home */
255-
, KE_C_END /* control-end */
256-
257-
, KE_X1MOUSE /* X1/X2 mouse-buttons */
258-
, KE_X1DRAG
259-
, KE_X1RELEASE
260-
, KE_X2MOUSE
261-
, KE_X2DRAG
262-
, KE_X2RELEASE
263-
264-
, KE_DROP /* DnD data is available */
265-
, KE_CURSORHOLD /* CursorHold event */
266-
, KE_NOP /* doesn't do something */
267-
, KE_FOCUSGAINED /* focus gained */
268-
, KE_FOCUSLOST /* focus lost */
242+
, KE_MOUSEDOWN = 75 /* scroll wheel pseudo-button Down */
243+
, KE_MOUSEUP = 76 /* scroll wheel pseudo-button Up */
244+
, KE_MOUSELEFT = 77 /* scroll wheel pseudo-button Left */
245+
, KE_MOUSERIGHT = 78 /* scroll wheel pseudo-button Right */
246+
247+
, KE_KINS = 79 /* keypad Insert key */
248+
, KE_KDEL = 80 /* keypad Delete key */
249+
250+
, KE_CSI = 81 /* CSI typed directly */
251+
, KE_SNR = 82 /* <SNR> */
252+
, KE_PLUG = 83 /* <Plug> */
253+
, KE_CMDWIN = 84 /* open command-line window from Command-line Mode */
254+
255+
, KE_C_LEFT = 85 /* control-left */
256+
, KE_C_RIGHT = 86 /* control-right */
257+
, KE_C_HOME = 87 /* control-home */
258+
, KE_C_END = 88 /* control-end */
259+
260+
, KE_X1MOUSE = 89 /* X1/X2 mouse-buttons */
261+
, KE_X1DRAG = 90
262+
, KE_X1RELEASE = 91
263+
, KE_X2MOUSE = 92
264+
, KE_X2DRAG = 93
265+
, KE_X2RELEASE = 94
266+
267+
, KE_DROP = 95 /* DnD data is available */
268+
, KE_CURSORHOLD = 96 /* CursorHold event */
269+
, KE_NOP = 97 /* doesn't do something */
270+
, KE_FOCUSGAINED = 98 /* focus gained */
271+
, KE_FOCUSLOST = 99 /* focus lost */
269272
};
270273

271274
/*

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,8 @@ static char *(features[]) =
764764

765765
static int included_patches[] =
766766
{ /* Add new patch number below this line */
767+
/**/
768+
697,
767769
/**/
768770
696,
769771
/**/

0 commit comments

Comments
 (0)