binutils-gdb/gdb/cli
Tom Tromey c119e04082 Remove excess calls to gdb_flush
A customer noticed some mildly odd MI output, where CLI output was
split into multiple MI strings at unusual boundaries, like this:

    ~"$1 = (b => true"
    ~", p => 0x407260"

This is technically correct according to the MI spec, but still
unusual, in that there's no particular reason for the string to be
split where it is.

I tracked this down to a call to gdb_flush in generic_val_print.
Then, I went through all calls to gdb_flush and removed the ones I
thought were superfluous.  In particular:

* Any call in the value-printing code;
* Likewise the type-printing code (just a single call); and
* Any call that immediately followed a printf that obviously
  ended with a newline, my belief being that gdb's standard output
  streams are line buffered (by inheriting the behavior from stdio)

Regression tested on x86-64 Fedora 29.

I didn't add a new test case.  I tend to think we don't necessarily
want to specify this behavior in the tests.  Let me know what you
think of this.

gdb/ChangeLog
2019-03-05  Tom Tromey  <tromey@adacore.com>

	* windows-nat.c (windows_nat_target::attach)
	(windows_nat_target::detach): Don't call gdb_flush.
	* valprint.c (generic_val_print, val_print, val_print_string):
	Don't call gdb_flush.
	* utils.c (defaulted_query): Don't call gdb_flush.
	* typeprint.c (print_type_scalar): Don't call gdb_flush.
	* target.c (target_announce_detach): Don't call gdb_flush.
	* sparc64-tdep.c (adi_print_versions): Don't call gdb_flush.
	* remote.c (extended_remote_target::attach): Don't call
	gdb_flush.
	* procfs.c (procfs_target::detach): Don't call gdb_flush.
	* printcmd.c (do_examine): Don't call gdb_flush.
	(info_display_command): Don't call gdb_flush.
	* p-valprint.c (pascal_val_print): Don't call gdb_flush.
	* nto-procfs.c (nto_procfs_target::attach): Don't call gdb_flush.
	* memattr.c (info_mem_command): Don't call gdb_flush.
	* mdebugread.c (mdebug_build_psymtabs): Don't call gdb_flush.
	* m2-valprint.c (m2_val_print): Don't call gdb_flush.
	* infrun.c (follow_exec, handle_command): Don't call gdb_flush.
	* inf-ptrace.c (inf_ptrace_target::attach): Don't call gdb_flush.
	* hppa-tdep.c (unwind_command): Don't call gdb_flush.
	* gnu-nat.c (gnu_nat_target::attach): Don't call gdb_flush.
	(gnu_nat_target::detach): Don't call gdb_flush.
	* f-valprint.c (f_val_print): Don't call gdb_flush.
	* darwin-nat.c (darwin_nat_target::attach): Don't call gdb_flush.
	* cli/cli-script.c (read_command_lines): Don't call gdb_flush.
	* cli/cli-cmds.c (shell_escape, print_disassembly): Don't call
	gdb_flush.
	* c-valprint.c (c_val_print): Don't call gdb_flush.
	* ada-valprint.c (ada_print_scalar): Don't call gdb_flush.
2019-03-05 08:55:51 -07:00
..
cli-cmds.c Remove excess calls to gdb_flush 2019-03-05 08:55:51 -07:00
cli-cmds.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-decode.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
cli-decode.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-dump.c Normalize includes to use common/ 2019-01-25 15:28:16 -07:00
cli-interp.c C++-ify struct thread_fsm 2019-02-07 06:08:33 -07:00
cli-interp.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-logging.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
cli-script.c Remove excess calls to gdb_flush 2019-03-05 08:55:51 -07:00
cli-script.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-setshow.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
cli-setshow.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-style.c Implement help/show values for 'set|show style'. 2019-01-12 21:56:58 +01:00
cli-style.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00
cli-utils.c Update copyright year range in all GDB files. 2019-01-01 10:01:51 +04:00
cli-utils.h Normalize include guards in gdb 2019-02-07 03:27:23 -07:00