From a0e0ef55c6339931e689918519a756b6a5bcdacb Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 3 Mar 2010 18:05:05 +0000 Subject: [PATCH] gdb 2010-03-03 Dainis Jonitis PR gdb/11345: * printcmd.c (printf_command): Print end of format string using printf_filtered. gdb/testsuite 2010-03-03 Tom Tromey PR gdb/11345: * gdb.base/printcmds.exp (test_printf): Add test. --- gdb/ChangeLog | 6 ++++++ gdb/printcmd.c | 7 +++++-- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/printcmds.exp | 4 ++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 92a725422a4..6c347b5dc2e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2010-03-03 Dainis Jonitis + + PR gdb/11345: + * printcmd.c (printf_command): Print end of format string using + printf_filtered. + 2010-03-02 Tom Tromey * mi/mi-cmd-break.c (mi_read_next_line): Add missing 'void'. diff --git a/gdb/printcmd.c b/gdb/printcmd.c index c8cb35c3c18..5e5ef8e1be2 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -2642,8 +2642,11 @@ printf_command (char *arg, int from_tty) /* Skip to the next substring. */ current_substring += strlen (current_substring) + 1; } - /* Print the portion of the format string after the last argument. */ - puts_filtered (last_arg); + /* Print the portion of the format string after the last argument. + Note that this will not include any ordinary %-specs, but it + might include "%%". That is why we use printf_filtered and not + puts_filtered here. */ + printf_filtered (last_arg); } do_cleanups (old_cleanups); } diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 7bcc5126fba..7a555645e82 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-03-03 Tom Tromey + + PR gdb/11345: + * gdb.base/printcmds.exp (test_printf): Add test. + 2010-03-02 H.J. Lu * gdb.arch/amd64-byte.exp: New. diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp index 5598bde2a9d..9c2cd6be730 100644 --- a/gdb/testsuite/gdb.base/printcmds.exp +++ b/gdb/testsuite/gdb.base/printcmds.exp @@ -686,6 +686,10 @@ proc test_printf {} { # Regression test for C lexer bug. gdb_test "printf \"%c\\n\", \"x\"\[1,0\]" "x" + + # Regression test for "%% at end of format string. + # See http://sourceware.org/bugzilla/show_bug.cgi?id=11345 + gdb_test "printf \"%%%d%%\\n\", 5" "%5%" } #Test printing DFP values with printf -- 2.30.2