diff options
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/top.c | 18 |
2 files changed, 11 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fa669daa4b3..d6fe9895a71 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2019-07-18 Guillaume LABARTHE <guillaume.labarthe@gmail.com> + + * top.c (new_ui_command): Open specified terminal just once. + 2019-07-18 Tom Tromey <tromey@adacore.com> * symtab.c (main_name): Constify return type. diff --git a/gdb/top.c b/gdb/top.c index 83a3604688b..60f81b3bf85 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -337,8 +337,6 @@ open_terminal_stream (const char *name) static void new_ui_command (const char *args, int from_tty) { - gdb_file_up stream[3]; - int i; int argc; const char *interpreter_name; const char *tty_name; @@ -357,13 +355,13 @@ new_ui_command (const char *args, int from_tty) { scoped_restore save_ui = make_scoped_restore (¤t_ui); - /* Open specified terminal, once for each of - stdin/stdout/stderr. */ - for (i = 0; i < 3; i++) - stream[i] = open_terminal_stream (tty_name); + /* Open specified terminal. Note: we used to open it three times, + once for each of stdin/stdout/stderr, but that does not work + with Windows named pipes. */ + gdb_file_up stream = open_terminal_stream (tty_name); std::unique_ptr<ui> ui - (new struct ui (stream[0].get (), stream[1].get (), stream[2].get ())); + (new struct ui (stream.get (), stream.get (), stream.get ())); ui->async = 1; @@ -373,10 +371,8 @@ new_ui_command (const char *args, int from_tty) interp_pre_command_loop (top_level_interpreter ()); - /* Make sure the files are not closed. */ - stream[0].release (); - stream[1].release (); - stream[2].release (); + /* Make sure the file is not closed. */ + stream.release (); ui.release (); } |