From 10b48a1c4ef9ad17a5658111233e7788716fc3c2 Mon Sep 17 00:00:00 2001 From: tromey Date: Thu, 4 Mar 2010 03:05:01 +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 92a725422a..6c347b5dc2 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 c8cb35c3c1..5e5ef8e1be 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 7bcc5126fb..7a555645e8 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 5598bde2a9..9c2cd6be73 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.11.0