Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [RFA] defs.h: Define GDB_DEFAULT_TARGET_[WIDE_]CHARSET for  Cygwin  and MingW builds
Date: Wed, 03 Mar 2010 10:16:00 -0000	[thread overview]
Message-ID: <20100303101601.GH17293@calimero.vinschen.de> (raw)
In-Reply-To: <m3r5o2bagj.fsf@fleche.redhat.com>

On Mar  2 15:55, Tom Tromey wrote:
> >>>>> "Tom" == Tom Tromey <tromey@redhat.com> writes:
> 
> Tom> I agree, we need a gdbarch method.
> 
> Tom> I'll look into this today.
> 
> Here's a patch, please let me know what you think.
> 
> This patch nearly works -- it regresses on a Python test that looks at
> gdb.parameter('target-charset') directly and then gets confused by
> "auto".  I think the only solution for this is to add a new Python API.
> (It would be easy enough to just hack the test case somehow -- but the
> libstdc++ printers use this same idiom, so a real solution is needed.)
> 
> I wasn't sure where to put the Cygwin override; I took Daniel's
> suggestion of i386_cygwin_init_abi; but Corinna's earlier patches
> changed all Windows targets, not just Cygwin, and I didn't see a good
> place to do that.

Me neither.  There seems to be no i386_windows_init_abi which would
allow to define this for all Windows targets.

Btw., in contrast to Cygwin, native Windows hosts don't have the
nl_langinfo function.  Of course, this affects the default host charset.
ISO-8859-1 is no sensible default, even if it mostly works on western
language Windows systems since it's quite similar to CP1252.  The most
sensible default host charset for a native Windows GDB is the codepage
returned by GetACP(), as Eli already pointed out for the target charset.

Maybe something along these lines would help (untested!):

--- charset.c   2010-03-03 11:09:43.000000000 +0100
+++ charset.c.new       2010-03-03 11:09:36.000000000 +0100
@@ -904,6 +904,10 @@ default_auto_wide_charset (void)
   return GDB_DEFAULT_TARGET_WIDE_CHARSET;
 }
 
+#ifdef _WIN32
+static w32_host_default_charset[16]; /* "CP + x<=5 digits + paranoia. */
+#endif
+
 void
 _initialize_charset (void)
 {
@@ -927,6 +931,11 @@ _initialize_charset (void)
   if (!strcmp (auto_host_charset_name, "646") || !*auto_host_charset_name)
     auto_host_charset_name = "ASCII";
   auto_target_charset_name = auto_host_charset_name;
+#elif defined (_WIN32)
+  snprintf (w32_host_default_charset, sizeof w32_host_default_charset,
+           "CP%d", GetACP());
+  auto_host_charset_name = w32_host_default_charset;
+  auto_target_charset_name = auto_host_charset_name;
 #endif
 #endif
 

Corinna

-- 
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat


  parent reply	other threads:[~2010-03-03 10:16 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-28 13:05 Corinna Vinschen
2010-02-28 14:29 ` Daniel Jacobowitz
2010-02-28 15:03   ` Corinna Vinschen
2010-02-28 18:48     ` Daniel Jacobowitz
2010-02-28 19:22       ` Corinna Vinschen
2010-02-28 22:27         ` Daniel Jacobowitz
2010-03-01 10:31           ` Corinna Vinschen
2010-03-01 17:11             ` Eli Zaretskii
2010-03-01 17:28               ` Corinna Vinschen
2010-03-01 17:21             ` Tom Tromey
2010-03-01 17:23               ` Daniel Jacobowitz
2010-03-01 17:27                 ` Corinna Vinschen
2010-03-01 17:31               ` Corinna Vinschen
2010-03-01 19:25                 ` Tom Tromey
2010-03-01 19:31                   ` Daniel Jacobowitz
2010-03-01 20:06                     ` Corinna Vinschen
2010-03-01 20:44                     ` Eli Zaretskii
2010-03-01 21:50                       ` Daniel Jacobowitz
2010-03-02 10:44                         ` Corinna Vinschen
2010-03-02 13:54                           ` Daniel Jacobowitz
2010-03-02 14:13                             ` Corinna Vinschen
2010-03-02 15:03                               ` Daniel Jacobowitz
2010-03-02 17:43                                 ` Corinna Vinschen
2010-03-02 17:59                     ` Tom Tromey
2010-03-02 18:22                       ` Corinna Vinschen
2010-03-02 18:28                         ` Corinna Vinschen
2010-03-02 22:55                       ` Tom Tromey
2010-03-02 22:57                         ` Tom Tromey
2010-03-03 10:16                           ` Corinna Vinschen
2010-03-03 10:41                             ` Corinna Vinschen
2010-03-03 10:59                               ` Corinna Vinschen
2010-03-03 16:26                                 ` Tom Tromey
2010-03-03 10:16                         ` Corinna Vinschen [this message]
2010-03-03 16:25                           ` Tom Tromey
2010-03-03 16:46                             ` Corinna Vinschen
2010-03-05  8:55                               ` Charles Wilson
2010-03-03 21:15                           ` Tom Tromey
2010-03-04  9:34                             ` Corinna Vinschen
2010-03-04 15:24                               ` Christopher Faylor
2010-03-04 15:38                                 ` Corinna Vinschen
2010-03-03 17:08                         ` Daniel Jacobowitz
2010-03-03 17:22                           ` Corinna Vinschen
2010-03-03 17:27                             ` Corinna Vinschen
2010-03-03 17:33                             ` Daniel Jacobowitz
2010-03-03 17:42                               ` Eli Zaretskii
2010-03-03 18:00                               ` Corinna Vinschen
2010-03-03 18:05                                 ` Daniel Jacobowitz
2010-03-03 18:22                                   ` Corinna Vinschen
2010-03-03 19:39                                     ` Daniel Jacobowitz
2010-03-03 20:16                                       ` Eli Zaretskii
2010-03-03 20:26                                         ` Daniel Jacobowitz
2010-03-03 21:08                           ` Tom Tromey
2010-03-01 17:12           ` Tom Tromey
2010-03-01 17:21             ` Daniel Jacobowitz
2010-03-01 17:28               ` Tom Tromey
2010-03-01 17:50                 ` Corinna Vinschen
2010-02-28 16:56 ` Eli Zaretskii
2010-02-28 17:05   ` Corinna Vinschen
2010-02-28 17:45     ` Eli Zaretskii
2010-02-28 17:52       ` Corinna Vinschen
2010-02-28 18:11         ` Corinna Vinschen
2010-02-28 18:59           ` Eli Zaretskii
2010-02-28 19:23             ` Corinna Vinschen
2010-02-28 18:59         ` Eli Zaretskii

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=20100303101601.GH17293@calimero.vinschen.de \
    --to=vinschen@redhat.com \
    --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