Skip to content
  • aburgess1's avatar
    gdb/readline: fix extra 'quit' message problem · 8f3babfa
    aburgess1 authored
    After these two commits:
    
      commit 4fb7bc4b
      Date:   Mon Mar 7 13:49:21 2022 +0000
    
          readline: back-port changes needed to properly detect EOF
    
      commit 91395d97
      Date:   Tue Feb 15 17:28:03 2022 +0000
    
          gdb: handle bracketed-paste-mode and EOF correctly
    
    It was observed that, if a previous command is selected at the
    readline prompt using the up arrow key, then when the command is
    accepted (by pressing return) an unexpected 'quit' message will be
    printed by GDB.  Here's an example session:
    
      (gdb) p 123
      $1 = 123
      (gdb) p 123
      quit
      $2 = 123
      (gdb)
    
    In this session the second 'p 123' was entered not by typing 'p 123',
    but by pressing the up arrow key to select the previous command.  It
    is important that the up arrow key is used, typing Ctrl-p will not
    trigger the bug.
    
    The problem here appears to be readline's EOF detection when handling
    multi-character input sequences.  I have raised this issue on the
    readline mailing list here:
    
      https://lists.gnu.org/archive/html/bug-readline/2022-04/msg00012.html
    
    a solution has been proposed here:
    
      https://lists.gnu.org/archive/html/bug-readline/2022-04/msg00016.html
    
    This patch includes a test for this issue as well as a back-port of
    (the important bits of) readline commit:
    
      commit 2ef9cec8c48ab1ae3a16b1874a49bd1f58eaaca1
      Date:   Wed May 4 11:18:04 2022 -0400
    
          fix for setting RL_STATE_EOF in callback mode
    
    That commit also includes some updates to the readline documentation
    and tests that I have not included in this commit.
    
    With this commit in place the unexpected 'quit' messages are resolved.
    8f3babfa