diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | dln.c | 10 |
2 files changed, 11 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Sat Oct 16 08:39:03 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * 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 <ko1@atdot.net> * hash.c (rb_hash_aref): skip calling "default" method @@ -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 = ' '; |