public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: "Pierre Muller" <pierre.muller@ics-cnrs.unistra.fr>
To: "'Keith Seitz'" <keiths@redhat.com>
Cc: "'gdb-patches'" <gdb-patches@sourceware.org>
Subject: RE: [RFC 5/6] Handle "set print sevenbit-strings on" in print_wchar
Date: Tue, 01 Oct 2013 13:23:00 -0000	[thread overview]
Message-ID: <000601cebea9$6c4bf1f0$44e3d5d0$@muller@ics-cnrs.unistra.fr> (raw)
In-Reply-To: <524A231F.1050101@redhat.com>



> -----Message d'origine-----
> De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Keith Seitz
> Envoyé : mardi 1 octobre 2013 03:19
> À : Pierre Muller
> Cc : 'gdb-patches'
> Objet : Re: [RFC 5/6] Handle "set print sevenbit-strings on" in
print_wchar
> 
> On 09/26/2013 01:03 PM, Pierre Muller wrote:
> 
> > 2013-09-26  Pierre Muller  <muller@sourceware.org>
> >
> >   	valprint.c (print_wchar): Honor sevenbit_strings value.
> >
> 
> [Your ChangeLog entry got munged...] I would prefer that you ChangeLog
> entry be a little more explicit about what changed, e.g., "Print escaped
> characters if sevenbit-strings is set."
> 
> I think this patch is okay, but it definitely needs a test (and a
> maintainer to approve). It took me a non-trivial amount of time to
> actually get the patch to show any difference in the output.
> 
> The trick (on linux) was changing the charset to something where
> (char)0x80 and up are printable characters. I used CP1252, and then I
> could see what this patch actually did.
  Sorry, I should have mentioned that..
 
> Perhaps this can be used in a test that will run on more than just MinGW
> hosts.

What about the following:

Pierre

ChangeLog entry:

2013-10-01  Pierre Muller  <muller@sourceware.org>

	* valprint.c (print_wchar): Print all char above seven-bit
 	as octal or hexadecimal if SEVENBIT_STRINGS is non-zero.

testsuite ChangeLog:

2013-10-01  Pierre Muller  <muller@sourceware.org>
	gdb.base/charset.exp: Add test to print char \242 in charset CP1252
	with or without "set print sevenbit-strings on".

---
 gdb/testsuite/gdb.base/charset.exp |   13 +++++++++++++
 gdb/valprint.c                     |    7 ++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/gdb/testsuite/gdb.base/charset.exp
b/gdb/testsuite/gdb.base/charset.exp
index a5dbb28..01129e4 100644
--- a/gdb/testsuite/gdb.base/charset.exp
+++ b/gdb/testsuite/gdb.base/charset.exp
@@ -627,5 +627,18 @@ foreach name {short int long} {
 	"assign string to $name array"
 }
 
+# Set the target charset to CP1252.
+gdb_test_no_output "set charset CP1252"
+
+# \242 is a valid CP1252 character.
+gdb_test "print \"\\242\"" " = \".\"" \
+  "\\242 character in CP1252"
+
+gdb_test_no_output "set print sevenbit-strings on"
+
+# \242 is a valid CP1252 character, nut must now be printed in octal.
+gdb_test "print \"\\242\"" " = \"\\\\242\"" \
+  "\\242 character in CP1252, with seven-bit limitation"
+
 
 gdb_exit 
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 0f6d65e..912352c 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1926,9 +1926,10 @@ print_wchar (gdb_wint_t w, const gdb_byte *orig,
   int need_escape = *need_escapep;
 
   *need_escapep = 0;
-  if (gdb_iswprint (w) && (!need_escape || (!gdb_iswdigit (w)
-					    && w != LCST ('8')
-					    && w != LCST ('9'))))
+  if (gdb_iswprint (w)
+      && (!sevenbit_strings || (w > 0 && w < 0x7f))
+      && (!need_escape || (!gdb_iswdigit (w)
+			   && w != LCST ('8') && w != LCST ('9'))))
     {
       gdb_wchar_t wchar = w;
 
-- 
1.7.9

  reply	other threads:[~2013-10-01 13:23 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-26 19:54 [RFC 0/6] Handle several character priniting problems (mainly related to mingw hosts) Pierre Muller
2013-09-26 19:57 ` [RFC 1/6] Fix display of tabulation character for mingw hosts Pierre Muller
2013-10-01  1:19   ` Keith Seitz
2013-10-01  8:02     ` [RFC 1/6 -V2] " Pierre Muller
2013-10-22 18:24       ` Keith Seitz
     [not found]     ` <10182.1932978512$1380614580@news.gmane.org>
2013-11-06 21:24       ` Tom Tromey
2013-11-08 10:26         ` Pierre Muller
2013-09-26 19:57 ` [RFC 2/6] Avoid missing char before incomplete sequence in wchar_iterate Pierre Muller
2013-10-01  1:19   ` Keith Seitz
2013-10-01 12:48     ` Pierre Muller
2013-10-22 18:25       ` Keith Seitz
     [not found]     ` <33559.6669152894$1380631692@news.gmane.org>
2013-11-06 21:38       ` Tom Tromey
2013-11-08 11:21         ` Pierre Muller
     [not found]         ` <"007201cedc72$46a78810$d3f69830$@muller"@ics-cnrs.unistra.fr>
2013-11-08 11:43           ` Eli Zaretskii
2013-09-26 20:01 ` [RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command Pierre Muller
2013-09-26 20:03 ` [RFC 4/6] Always set testsuite mode and interactive mode for mingw hosts Pierre Muller
2013-09-26 20:04 ` [RFC 5/6] Handle "set print sevenbit-strings on" in print_wchar Pierre Muller
2013-10-01  1:19   ` Keith Seitz
2013-10-01 13:23     ` Pierre Muller [this message]
2013-10-22 18:25       ` Keith Seitz
2013-11-06 21:43         ` Tom Tromey
2013-09-26 20:05 ` [RFC 6/6] Fix remaining failures in gdb.base/printcmds.exp for mingw hosts Pierre Muller
2013-10-01  1:19   ` Keith Seitz
2013-10-01 13:39     ` Pierre Muller
2013-10-22 18:26       ` Keith Seitz
2013-11-06 21:53         ` Tom Tromey
     [not found] ` <33207.6293569573$1380225714@news.gmane.org>
2013-09-27  8:07   ` [RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command asmwarrior
2013-09-27  8:11     ` asmwarrior
2013-09-27 12:12       ` Pierre Muller
2013-09-27 15:07   ` Tom Tromey
2013-09-27 17:42     ` Pierre Muller
     [not found]     ` <5245c3a0.a3e2440a.4b98.ffffd279SMTPIN_ADDED_BROKEN@mx.google.com>
2013-09-27 19:36       ` Pedro Alves
2013-09-27 19:40         ` Pedro Alves
2013-09-27 21:12           ` Pierre Muller
2013-09-29 13:45         ` Yao Qi
2013-09-29 18:51           ` Pedro Alves
2013-09-29 23:00             ` Pierre Muller
2013-09-30  9:38               ` Pedro Alves
2013-09-30 12:33               ` Yao Qi
2013-10-01 19:42               ` Keith Seitz
     [not found]             ` <10148.9390749068$1380495630@news.gmane.org>
2013-09-29 23:54               ` asmwarrior
2013-09-30 19:23               ` Tom Tromey
2013-09-30 19:34                 ` Eli Zaretskii
2013-09-30 19:45                   ` Pedro Alves
2013-09-30 22:41                     ` Pierre Muller
     [not found] ` <11813.6176527061$1380225854@news.gmane.org>
2013-09-27 15:13   ` [RFC 5/6] Handle "set print sevenbit-strings on" in print_wchar Tom Tromey
2013-09-27 15:23     ` Pierre Muller
     [not found] ` <9177.88728042996$1380225912@news.gmane.org>
2013-11-06 21:50   ` [RFC 6/6] Fix remaining failures in gdb.base/printcmds.exp for mingw hosts Tom Tromey
     [not found] <"002901cebaf2$35ec65a0$a1c530e0$@muller"@ics-cnrs.unistra.fr>
     [not found] ` <"003201cebaf3$338a8b60$9a9fa220$@muller"@ics-cnrs.unistra.fr>
2013-09-26 20:08   ` [RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command Eli Zaretskii
2013-09-26 20:13     ` Pierre Muller
     [not found]     ` <"003e01cebaf4$e97923e0$bc6b6ba0$@muller"@ics-cnrs.unistra.fr>
2013-09-27  5:52       ` Eli Zaretskii
2013-09-27  6:53         ` Pierre Muller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='000601cebea9$6c4bf1f0$44e3d5d0$@muller@ics-cnrs.unistra.fr' \
    --to=pierre.muller@ics-cnrs.unistra.fr \
    --cc=gdb-patches@sourceware.org \
    --cc=keiths@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).