From 352f9e9dc742f6c2bc0f4005c1a3d64c6095863e Mon Sep 17 00:00:00 2001 From: Mark Alexander Date: Mon, 5 Jan 1998 23:41:46 +0000 Subject: [PATCH] * monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define. * monitor.c (monitor_wait): Echo program output. * dve3900-rom.c (_initialize_r3900_rom): Remove MO_HANDLE_NL flag, add MO_PRINT_PROGRAM_OUTPUT flag. --- gdb/ChangeLog | 7 +++++++ gdb/dve3900-rom.c | 6 +++--- gdb/monitor.c | 10 ++++++++++ gdb/monitor.h | 4 ++++ 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 471b0bc61b6..4a920227a88 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +Mon Jan 5 20:21:59 1998 Mark Alexander + + * monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define. + * monitor.c (monitor_wait): Echo program output. + * dve3900-rom.c (_initialize_r3900_rom): Remove MO_HANDLE_NL flag, + add MO_PRINT_PROGRAM_OUTPUT flag. + Fri Jan 2 18:48:58 1998 Mark Alexander * configure.in: Double up brackets in shell case pattern. diff --git a/gdb/dve3900-rom.c b/gdb/dve3900-rom.c index 511b4fede80..766e2d583de 100644 --- a/gdb/dve3900-rom.c +++ b/gdb/dve3900-rom.c @@ -403,10 +403,10 @@ r3900_open (args, from_tty) void _initialize_r3900_rom () { - r3900_cmds.flags = MO_HANDLE_NL | - MO_NO_ECHO_ON_OPEN | + r3900_cmds.flags = MO_NO_ECHO_ON_OPEN | MO_ADDR_BITS_REMOVE | - MO_CLR_BREAK_USES_ADDR; + MO_CLR_BREAK_USES_ADDR | + MO_PRINT_PROGRAM_OUTPUT; r3900_cmds.init = r3900_inits; r3900_cmds.cont = "g\r"; diff --git a/gdb/monitor.c b/gdb/monitor.c index 97f5a504b4f..1650800130b 100644 --- a/gdb/monitor.c +++ b/gdb/monitor.c @@ -798,6 +798,16 @@ monitor_wait (pid, status) } while (resp_len < 0); + /* Print any output characters that were preceded by ^O. */ + if (current_monitor->flags & MO_PRINT_PROGRAM_OUTPUT) + { + int i; + + for (i = 0; i < resp_len - 1; i++) + if (buf[i] == 0x0f) + putchar_unfiltered (buf[++i]); + } + signal (SIGINT, ofunc); timeout = old_timeout; diff --git a/gdb/monitor.h b/gdb/monitor.h index f6c22c67cdd..14d99c9f827 100644 --- a/gdb/monitor.h +++ b/gdb/monitor.h @@ -201,6 +201,10 @@ struct monitor_ops #define MO_ADDR_BITS_REMOVE 0x100000 +/* If set, then display target program output if prefixed by ^O. */ + +#define MO_PRINT_PROGRAM_OUTPUT 0x200000 + #define SREC_SIZE 160 extern void monitor_open PARAMS ((char *args, struct monitor_ops *ops, -- 2.30.2