aboutsummaryrefslogtreecommitdiff
path: root/gdb/amd64-bsd-nat.c
diff options
context:
space:
mode:
authorSergio Durigan Junior <sergiodj@redhat.com>2020-02-19 16:40:48 -0500
committerSergio Durigan Junior <sergiodj@redhat.com>2020-02-20 16:02:37 -0500
commit3f702acd7d562d3a33c59d6398ae74058438d2c7 (patch)
treef0a09e5b9e6bbb156e6a07d15527089bd79127b6 /gdb/amd64-bsd-nat.c
parenta9c798035de33ccc3bc3e494449bbe931e900372 (diff)
downloadbinutils-3f702acd7d562d3a33c59d6398ae74058438d2c7.zip
binutils-3f702acd7d562d3a33c59d6398ae74058438d2c7.tar.gz
binutils-3f702acd7d562d3a33c59d6398ae74058438d2c7.tar.bz2
Make '{putchar,fputc}_unfiltered' use 'fputs_unfiltered'
There is currently a regression when using '{putchar,fputc}_unfiltered' with 'puts_unfiltered' which was introduced by one of the commits that reworked the unfiltered print code. The regression makes it impossible to use '{putchar,fputc}_unfiltered' with 'puts_unfiltered', because the former writes directly to the ui_file stream using 'stream->write', while the latter uses a buffered mechanism (see 'wrap_buffer') and delays the printing. If you do a quick & dirty hack on e.g. top.c:show_gdb_datadir: @@ -2088,6 +2088,13 @@ static void show_gdb_datadir (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) { + putchar_unfiltered ('\n'); + puts_unfiltered ("TEST"); + putchar_unfiltered ('>'); + puts_unfiltered ("PUTS"); + putchar_unfiltered ('\n'); rebuild GDB and invoke the "show data-directory" command, you will see: (gdb) show data-directory > TESTPUTSGDB's data directory is "/usr/local/share/gdb". Note how the '>' was printed before the output, and "TEST" and "PUTS" were printed together. My first attempt to fix this was to always call 'flush_wrap_buffer' at the end of 'fputs_maybe_filtered', since it seemed to me that the function should always print what was requested. But I wasn't sure this was the right thing to do, so I talked to Tom on IRC and he gave me another, simpler idea: make '{putchar,fputc}_unfiltered' call into the already existing 'fputs_unfiltered' function. This patch implements the idea. I regtested it on the Buildbot, and no regressions were detected. gdb/ChangeLog: 2020-02-20 Sergio Durigan Junior <sergiodj@redhat.com> Tom Tromey <tom@tromey.com> * utils.c (fputs_maybe_filtered): Call 'stream->puts' instead of 'fputc_unfiltered'. (putchar_unfiltered): Call 'fputc_unfiltered'. (fputc_unfiltered): Call 'fputs_unfiltered'.
Diffstat (limited to 'gdb/amd64-bsd-nat.c')
0 files changed, 0 insertions, 0 deletions