Commit 85a61b6d authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

GetWindowsError: use FromWide()

parent 1e7cd2c8
...@@ -291,43 +291,23 @@ static void *module_Lookup( module_handle_t handle, const char *psz_function ) ...@@ -291,43 +291,23 @@ static void *module_Lookup( module_handle_t handle, const char *psz_function )
} }
#if defined(HAVE_DL_WINDOWS) #if defined(HAVE_DL_WINDOWS)
# include <wchar.h>
static char * GetWindowsError( void ) static char * GetWindowsError( void )
{ {
#if defined(UNDER_CE) wchar_t wmsg[256];
wchar_t psz_tmp[MAX_PATH];
char * psz_buffer = malloc( MAX_PATH );
#else
char * psz_tmp = malloc( MAX_PATH );
#endif
int i = 0, i_error = GetLastError(); int i = 0, i_error = GetLastError();
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, FormatMessageW( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, i_error, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), NULL, i_error, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR)psz_tmp, MAX_PATH, NULL ); wmsg, 256, NULL );
/* Go to the end of the string */ /* Go to the end of the string */
while( psz_tmp[i] && psz_tmp[i] != _T('\r') && psz_tmp[i] != _T('\n') ) while( !wmemchr( L"\r\n\0", wmsg[i], 3 ) )
{
i++; i++;
}
if( psz_tmp[i] )
{
#if defined(UNDER_CE)
swprintf( psz_tmp + i, L" (error %i)", i_error );
psz_tmp[ 255 ] = L'\0';
#else
snprintf( psz_tmp + i, 256 - i, " (error %i)", i_error );
psz_tmp[ 255 ] = '\0';
#endif
}
#if defined(UNDER_CE) snwprintf( wmsg + i, 256 - i, L" (error %i)", i_error );
wcstombs( psz_buffer, psz_tmp, MAX_PATH ); return FromWide( wmsg );
return psz_buffer;
#else
return psz_tmp;
#endif
} }
#endif /* HAVE_DL_WINDOWS */ #endif /* HAVE_DL_WINDOWS */
#endif /* HAVE_DYNAMIC_PLUGINS */ #endif /* HAVE_DYNAMIC_PLUGINS */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment