1#include "All.h" 2#include "GlobalFunctions.h" 3#include "IO.h" 4 5#include "CharacterHelper.h" 6 7#if 0 8BOOL GetMMXAvailable ( void ) // ������ 9{ 10 return FALSE; 11} 12#endif 13 14/* 15#ifndef __GNUC_IA32__ 16 17extern "C" BOOL GetMMXAvailable(void) 18{ 19#ifdef ENABLE_ASSEMBLY 20 21 unsigned long nRegisterEDX; 22 23 try 24 { 25 __asm mov eax, 1 26 __asm CPUID 27 __asm mov nRegisterEDX, edx 28 } 29 catch(...) 30 { 31 return FALSE; 32 } 33 34 if (nRegisterEDX & 0x800000) 35 RETURN_ON_EXCEPTION(__asm emms, FALSE) 36 else 37 return FALSE; 38 39 return TRUE; 40 41#else 42 return FALSE; 43#endif 44} 45 46#endif // #ifndef __GNUC_IA32__ 47*/ 48 49int ReadSafe(CIO * pIO, void * pBuffer, int nBytes) 50{ 51 unsigned int nBytesRead = 0; 52 int nRetVal = pIO->Read(pBuffer, nBytes, &nBytesRead); 53 if (nRetVal == ERROR_SUCCESS) 54 { 55 if (nBytes != int(nBytesRead)) 56 nRetVal = ERROR_IO_READ; 57 } 58 59 return nRetVal; 60} 61 62int WriteSafe(CIO * pIO, void * pBuffer, int nBytes) 63{ 64 unsigned int nBytesWritten = 0; 65 int nRetVal = pIO->Write(pBuffer, nBytes, &nBytesWritten); 66 if (nRetVal == ERROR_SUCCESS) 67 { 68 if (nBytes != int(nBytesWritten)) 69 nRetVal = ERROR_IO_WRITE; 70 } 71 72 return nRetVal; 73} 74 75BOOL FileExists(char* pFilename) 76{ 77 if (0 == wcscmp(pFilename, "-") || 0 == wcscmp(pFilename, "/dev/stdin")) 78 return TRUE; 79 80#ifdef _WIN32 81 82 BOOL bFound = FALSE; 83 84 WIN32_FIND_DATA WFD; 85 HANDLE hFind = FindFirstFile(pFilename, &WFD); 86 if (hFind != INVALID_HANDLE_VALUE) 87 { 88 bFound = TRUE; 89 CloseHandle(hFind); 90 } 91 92 return bFound; 93 94#else 95 96 CSmartPtr<char> spANSI(GetANSIFromUTF16(pFilename), TRUE); 97 98 struct stat b; 99 100 if (stat(spANSI, &b) != 0) 101 return FALSE; 102 103 if (!S_ISREG(b.st_mode)) 104 return FALSE; 105 106 return TRUE; 107 108#endif 109} 110