|
|
|
@ -1107,23 +1107,37 @@ captured_mi_execute_command (struct ui_out *uiout, void *data) |
|
|
|
/* Call the "console" interpreter. */ |
|
|
|
argv[0] = "console"; |
|
|
|
argv[1] = context->command; |
|
|
|
mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2); |
|
|
|
args->rc = mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2); |
|
|
|
|
|
|
|
/* If we changed interpreters, DON'T print out anything. */ |
|
|
|
/* If we changed interpreters, DON'T print out anything. */ |
|
|
|
if (current_interp_named_p (INTERP_MI) |
|
|
|
|| current_interp_named_p (INTERP_MI1) |
|
|
|
|| current_interp_named_p (INTERP_MI2) |
|
|
|
|| current_interp_named_p (INTERP_MI3)) |
|
|
|
{ |
|
|
|
/* print the result */ |
|
|
|
/* FIXME: Check for errors here. */ |
|
|
|
fputs_unfiltered (context->token, raw_stdout); |
|
|
|
fputs_unfiltered ("^done", raw_stdout); |
|
|
|
mi_out_put (uiout, raw_stdout); |
|
|
|
mi_out_rewind (uiout); |
|
|
|
fputs_unfiltered ("\n", raw_stdout); |
|
|
|
args->action = EXECUTE_COMMAND_DISPLAY_PROMPT; |
|
|
|
args->rc = MI_CMD_DONE; |
|
|
|
if (args->rc == MI_CMD_DONE) |
|
|
|
{ |
|
|
|
fputs_unfiltered (context->token, raw_stdout); |
|
|
|
fputs_unfiltered ("^done", raw_stdout); |
|
|
|
mi_out_put (uiout, raw_stdout); |
|
|
|
mi_out_rewind (uiout); |
|
|
|
fputs_unfiltered ("\n", raw_stdout); |
|
|
|
args->action = EXECUTE_COMMAND_DISPLAY_PROMPT; |
|
|
|
} |
|
|
|
else if (args->rc == MI_CMD_ERROR) |
|
|
|
{ |
|
|
|
if (mi_error_message) |
|
|
|
{ |
|
|
|
fputs_unfiltered (context->token, raw_stdout); |
|
|
|
fputs_unfiltered ("^error,msg=\"", raw_stdout); |
|
|
|
fputstr_unfiltered (mi_error_message, '"', raw_stdout); |
|
|
|
xfree (mi_error_message); |
|
|
|
fputs_unfiltered ("\"\n", raw_stdout); |
|
|
|
} |
|
|
|
mi_out_rewind (uiout); |
|
|
|
} |
|
|
|
else |
|
|
|
mi_out_rewind (uiout); |
|
|
|
} |
|
|
|
break; |
|
|
|
} |
|
|
|
|