qemu-io: fix EOF Ctrl-D handling in qemu-io readline code
commit0e448a05444ddc602d2857a17f31042631a75946
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 12 Feb 2018 18:48:49 +0000 (12 18:48 +0000)
committerKevin Wolf <kwolf@redhat.com>
Tue, 13 Feb 2018 11:27:17 +0000 (13 12:27 +0100)
tree760bc756468ab44f3f4c8a78355c9382add5dfa4
parent2782bb75e9ff6319386159577f544deb0f50f536
qemu-io: fix EOF Ctrl-D handling in qemu-io readline code

qemu-io puts the TTY into non-canonical mode, which means no EOF processing is
done and thus getchar() will never return the EOF constant. Instead we have to
query the TTY attributes to determine the configured EOF character (usually
Ctrl-D / 0x4), and then explicitly check for that value. This fixes the
regression that prevented Ctrl-D from triggering an exit of qemu-io that has
existed since readline was first added in

  commit 0cf17e181798063c3824c8200ba46f25f54faa1a
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   Thu Nov 14 11:54:17 2013 +0100

    qemu-io: use readline.c

It also ensures that a newline is printed when exiting, to complete the
line output by the "qemu-io> " prompt.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
qemu-io.c