From: "Pierre Muller" <pierre.muller@ics-cnrs.unistra.fr>
To: "'gdb-patches'" <gdb-patches@sourceware.org>
Subject: [RFC 2/6] Avoid missing char before incomplete sequence in wchar_iterate.
Date: Thu, 26 Sep 2013 19:57:00 -0000 [thread overview]
Message-ID: <002f01cebaf2$aac80410$00580c30$@muller@ics-cnrs.unistra.fr> (raw)
In-Reply-To: <002901cebaf2$35ec65a0$a1c530e0$@muller@ics-cnrs.unistra.fr>
If charset is set to UTF-8
p "ABCD\340"
will output
"ABC" <incomplete sequence \340>
Note the missing character 'D'.
This patch solves the issue by checking also for EINVAL
if character have been converted.
Pierre Muller
GDB pascal language maintainer
2013-09-26 Pierre Muller <muller@sourceware.org>
charset.c (wchar_iterate): Also handle converted characters
when EINVAL is returned by iconv call.
From 8a93eac07fa4a5c3b9b77832cd6ebb50e2a07d68 Mon Sep 17 00:00:00 2001
From: Pierre Muller <muller@ics.u-strasbg.fr>
Date: Thu, 26 Sep 2013 17:34:01 +0200
---
gdb/charset.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/gdb/charset.c b/gdb/charset.c
index 5835fd4..f0e258c 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -659,7 +659,7 @@ wchar_iterate (struct wchar_iterator *iter,
converted a character; if so, return it. */
if (out_avail < out_request * sizeof (gdb_wchar_t))
break;
-
+
/* Otherwise skip the first invalid character, and let
the caller know about it. */
*out_result = wchar_iterate_invalid;
@@ -687,7 +687,10 @@ wchar_iterate (struct wchar_iterator *iter,
case EINVAL:
/* Incomplete input sequence. Let the caller know, and
- arrange for future calls to see EOF. */
+ arrange for future calls to see EOF.
+ Here also we might have converted something. */
+ if (out_avail < out_request * sizeof (gdb_wchar_t))
+ break;
*out_result = wchar_iterate_incomplete;
*ptr = iter->input;
*len = iter->bytes;
--
1.7.9
next prev parent reply other threads:[~2013-09-26 19:57 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 ` Pierre Muller [this message]
2013-10-01 1:19 ` [RFC 2/6] Avoid missing char before incomplete sequence in wchar_iterate 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 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 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
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='002f01cebaf2$aac80410$00580c30$@muller@ics-cnrs.unistra.fr' \
--to=pierre.muller@ics-cnrs.unistra.fr \
--cc=gdb-patches@sourceware.org \
/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).