nano-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Nano-devel] [PATCH] input: consume the whole escape sequence for modifi


From: Benno Schulenberg
Subject: [Nano-devel] [PATCH] input: consume the whole escape sequence for modified PgUp and PgDn keys
Date: Thu, 12 Jul 2018 10:56:39 +0200

Even when we don't act on some of these combinations, at least eat up
the whole sequence so the unknown keystroke doesn't enter things like
"3~" into the buffer.

This fixes https://savannah.gnu.org/bugs/?54291.
---
 src/winio.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/winio.c b/src/winio.c
index 281488a8..830dd9dd 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1094,10 +1094,10 @@ int convert_sequence(const int *seq, size_t length, int 
*consumed)
                                                if (length > 2 && (seq[2] == 
'~' || seq[2] == '^'))
                                                        return KEY_PPAGE;
 #ifndef NANO_TINY
-                                               else if (length > 4 && seq[2] 
== ';' &&
-                                                                       seq[3] 
== '2' && seq[4] == '~') {
+                                               else if (length > 4 && seq[2] 
== ';' && seq[4] == '~') {
                                                        *consumed = 5;
-                                                       return shiftaltup;
+                                                       if (seq[3] == '2' || 
seq[3] == '6')
+                                                               return 
shiftaltup;
                                                }
 #endif
                                                break;
@@ -1107,10 +1107,10 @@ int convert_sequence(const int *seq, size_t length, int 
*consumed)
                                                if (length > 2 && (seq[2] == 
'~' || seq[2] == '^'))
                                                        return KEY_NPAGE;
 #ifndef NANO_TINY
-                                               else if (length > 4 && seq[2] 
== ';' &&
-                                                                       seq[3] 
== '2' && seq[4] == '~') {
+                                               else if (length > 4 && seq[2] 
== ';' && seq[4] == '~') {
                                                        *consumed = 5;
-                                                       return shiftaltdown;
+                                                       if (seq[3] == '2' || 
seq[3] == '6')
+                                                               return 
shiftaltdown;
                                                }
 #endif
                                                break;
-- 
2.17.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]