Fix vpp "unix interactive" when running under emacs + gdb 07/8507/1
authorDave Barach <dave@barachs.net>
Fri, 22 Sep 2017 17:34:39 +0000 (13:34 -0400)
committerDave Barach <dave@barachs.net>
Fri, 22 Sep 2017 17:39:07 +0000 (13:39 -0400)
In this specific corner-case setup, ioctl (0, TIOCGWINSZ) returns
window height = 0 and width = 0. Rather than declaring the terminal to
be non-interactive, set the window size parameters to 80 x 24.

Change-Id: If66f5f0883f1940518ec1c6e26228c9bb6f32852
Signed-off-by: Dave Barach <dave@barachs.net>
src/vlib/unix/cli.c

index ffe5de6..be3c813 100644 (file)
@@ -2776,8 +2776,14 @@ unix_cli_config (vlib_main_t * vm, unformat_input_t * input)
          cf->height = ws.ws_row;
 
          if (cf->width == 0 || cf->height == 0)
-           /* We have a tty, but no size. Stick to line mode. */
-           goto notty;
+           {
+             /*
+              * We have a tty, but no size. Use defaults.
+              * vpp "unix interactive" inside emacs + gdb ends up here.
+              */
+             cf->width = 80;
+             cf->height = 24;
+           }
 
          /* Setup the history */
          cf->history_limit = um->cli_history_limit;
@@ -2816,7 +2822,6 @@ unix_cli_config (vlib_main_t * vm, unformat_input_t * input)
        }
       else
        {
-       notty:
          /* No tty, so make sure the session doesn't have tty-like features */
          unix_cli_set_session_noninteractive (cf);
        }