Fixed function WINAPI_AttachConsole

This commit is contained in:
Pali Rohár 2010-10-13 01:13:20 +02:00
parent d18ff34904
commit 24c923b77c

View file

@ -24,7 +24,7 @@
#include <wincon.h>
#include <io.h>
#include <fcntl.h>
#include <cstdio>
#include <stdio.h>
#include <iostream>
#include "attachconsole.h"
@ -42,9 +42,9 @@ bool WINAPI_AttachConsole() {
if ( ! hasVersion )
return false;
short version = 0;
version |= (char) osvi.dwMinorVersion;
version |= (char) osvi.dwMajorVersion << 8;
int version = 0;
version |= osvi.dwMinorVersion;
version |= osvi.dwMajorVersion << 8;
if ( version < 0x0500 )
return false;
@ -64,15 +64,9 @@ bool WINAPI_AttachConsole() {
if ( hIn == INVALID_HANDLE_VALUE || hOut == INVALID_HANDLE_VALUE || hErr == INVALID_HANDLE_VALUE )
return false;
#ifdef _WIN64
int osIn = _open_osfhandle((long long) hIn, O_TEXT);
int osOut = _open_osfhandle((long long) hOut, O_TEXT);
int osErr = _open_osfhandle((long long) hErr, O_TEXT);
#else
int osIn = _open_osfhandle((long) hIn, O_TEXT);
int osOut = _open_osfhandle((long) hOut, O_TEXT);
int osErr = _open_osfhandle((long) hErr, O_TEXT);
#endif
int osIn = _open_osfhandle((intptr_t) hIn, O_TEXT);
int osOut = _open_osfhandle((intptr_t) hOut, O_TEXT);
int osErr = _open_osfhandle((intptr_t) hErr, O_TEXT);
if ( osIn == -1 || osOut == -1 || osErr == -1 )
return false;