Index: misc/unix/errorcodes.c =================================================================== --- misc/unix/errorcodes.c (revision 11) +++ misc/unix/errorcodes.c (working copy) @@ -247,15 +247,35 @@ apr_size_t len=0, i; #ifndef NETWARE - len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM +#if !defined(_WIN32_WCE) + len = FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errcode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */ - (LPTSTR) buf, + buf, (DWORD)bufsize, NULL); +#else + LPTSTR msg = (LPTSTR) buf; + len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM + | FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + errcode, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */ + msg, + (DWORD) (bufsize/sizeof(TCHAR)), + NULL); + /* in-place convert to US-ASCII, substituting '?' for non ASCII */ + for(i = 0; i <= len; i++) { + if (msg[i] < 0x80 && msg[i] >= 0) { + buf[i] = (char) msg[i]; + } else { + buf[i] = '?'; + } + } #endif +#endif if (!len) { for (i = 0; gaErrorList[i].msg; ++i) {