From 92a7cf0455f716b7e5031d1a9ee60b14c3bef92a Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 15 Oct 2010 23:39:16 +0000 Subject: [PATCH] * dln.c (dln_strerror): get English message first, instead of system default. see [ruby-dev:42358]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ dln.c | 10 ++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index bf917cb6a3..e6b644f79a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Oct 16 08:39:03 2010 Nobuyoshi Nakada + + * dln.c (dln_strerror): get English message first, instead of + system default. see [ruby-dev:42358]. + Sat Oct 16 00:08:00 2010 Koichi Sasada * hash.c (rb_hash_aref): skip calling "default" method diff --git a/dln.c b/dln.c index bb41f66c56..4e7addd7cb 100644 --- a/dln.c +++ b/dln.c @@ -1127,10 +1127,12 @@ dln_strerror(char *message, size_t size) char *p = message; size_t len = snprintf(message, size, "%d: ", error); - FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - message + len, size - len, NULL); +#define format_message(sublang) FormatMessage(\ + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, \ + NULL, error, MAKELANGID(LANG_NEUTRAL, sublang), \ + message + len, size - len, NULL) + if (format_message(SUBLANG_ENGLISH_US) == 0) + format_message(SUBLANG_DEFAULT); for (p = message + len; *p; p++) { if (*p == '\n' || *p == '\r') *p = ' ';