* monitor.h (MO_PRINT_PROGRAM_OUTPUT): Define.
authorMark Alexander <marka@cygnus>
Mon, 5 Jan 1998 23:41:46 +0000 (23:41 +0000)
committerMark Alexander <marka@cygnus>
Mon, 5 Jan 1998 23:41:46 +0000 (23:41 +0000)
* 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
gdb/dve3900-rom.c
gdb/monitor.c
gdb/monitor.h

index 471b0bc..4a92022 100644 (file)
@@ -1,3 +1,10 @@
+Mon Jan  5 20:21:59 1998  Mark Alexander  <marka@cygnus.com>
+
+       * 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  <marka@cygnus.com>
 
        * configure.in: Double up brackets in shell case pattern.
index 511b4fe..766e2d5 100644 (file)
@@ -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";
index 97f5a50..1650800 100644 (file)
@@ -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;
index f6c22c6..14d99c9 100644 (file)
@@ -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,