]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't generate multibyte keystroke events if there is no actual text
authorPo Lu <luangruo@yahoo.com>
Tue, 22 Feb 2022 02:38:53 +0000 (10:38 +0800)
committerPo Lu <luangruo@yahoo.com>
Tue, 22 Feb 2022 02:40:24 +0000 (10:40 +0800)
* src/xterm.c (handle_one_xevent): Don't generate
MULTIBYTE_CHAR_KEYSTROKE_EVENTs if nbytes is zero.

src/xterm.c

index ca74f6cbd9f0bbc3db67d8b395b212345481bec7..6efefd0301df509aa4f2784e2e0af2b00a7dbbce 100644 (file)
@@ -10127,11 +10127,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                STORE_KEYSYM_FOR_DEBUG (copy_bufptr[i]);
              }
 
-           inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
-           inev.ie.arg = make_unibyte_string ((char *) copy_bufptr, nbytes);
+           if (nbytes)
+             {
+               inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+               inev.ie.arg = make_unibyte_string ((char *) copy_bufptr, nbytes);
 
-           Fput_text_property (make_fixnum (0), make_fixnum (nbytes),
-                               Qcoding, coding, inev.ie.arg);
+               Fput_text_property (make_fixnum (0), make_fixnum (nbytes),
+                                   Qcoding, coding, inev.ie.arg);
+             }
 
            if (keysym == NoSymbol)
              break;
@@ -11842,11 +11845,14 @@ handle_one_xevent (struct x_display_info *dpyinfo,
                      STORE_KEYSYM_FOR_DEBUG (copy_bufptr[i]);
                    }
 
-                 inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
-                 inev.ie.arg = make_unibyte_string (copy_bufptr, nbytes);
+                 if (nbytes)
+                   {
+                     inev.ie.kind = MULTIBYTE_CHAR_KEYSTROKE_EVENT;
+                     inev.ie.arg = make_unibyte_string (copy_bufptr, nbytes);
 
-                 Fput_text_property (make_fixnum (0), make_fixnum (nbytes),
-                                     Qcoding, coding, inev.ie.arg);
+                     Fput_text_property (make_fixnum (0), make_fixnum (nbytes),
+                                         Qcoding, coding, inev.ie.arg);
+                   }
                  goto xi_done_keysym;
                }