This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][PR server/24377] Fix mixing English and system default languages in error messages on Windows


> From: Владимир Мартьянов <vilgeforce@gmail.com>
> Date: Fri, 29 Mar 2019 11:42:36 +0300
> Cc: gdb-patches@sourceware.org
> 
> Just try to use gettext with FormatMessage. I don't have idea how to
> do it, could you please give me a code sample?

I believe this is a misunderstanding of some kind, because there's
nothing wrong with FormatMessage calls.  As you originally pointed
out, the 4th argument to FormatMessage is zero, which means use the
system default locale.  The problem you raised was that gdbserver has
messages where English is hard-coded, so this makes gdbserver
sometimes talk in English and sometimes in the default locale's
language.

My proposal was to make gdbserver _always_ talk in the current
locale's language, which means the FormatMessage call should be left
alone, and instead those gdbserver messages that use English
hard-coded should be translated by using gettext.

That is, instead of

      error ("Error creating process \"%s%s\", (error %d): %s\n",
	     program, args, (int) err, strwinerror (err));

gdbserver should use this:

      error (_("Error creating process \"%s%s\", (error %d): %s\n"),
	     program, args, (int) err, strwinerror (err));

A question to other GDB maintainers: does gdbserver use gettext?  Or
is gdbserver supposed to talk to users only in English?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]