Use ReadFile helper function in exehead
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6395 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
a5f0809ee9
commit
19b9a3e65a
4 changed files with 15 additions and 9 deletions
|
@ -1406,7 +1406,6 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
TCHAR *textout=var1;
|
TCHAR *textout=var1;
|
||||||
DWORD dw;
|
|
||||||
int rpos=0;
|
int rpos=0;
|
||||||
TCHAR *hptr=var0;
|
TCHAR *hptr=var0;
|
||||||
int maxlen=GetIntFromParm(2);
|
int maxlen=GetIntFromParm(2);
|
||||||
|
@ -1427,17 +1426,17 @@ static int NSISCALL ExecuteEntry(entry *entry_)
|
||||||
And what if the multibyte character needs two WCHARs?
|
And what if the multibyte character needs two WCHARs?
|
||||||
*/
|
*/
|
||||||
char tmpc;
|
char tmpc;
|
||||||
if (!ReadFile(h,&tmpc,1,&dw,NULL) || dw != 1) break;
|
if (!myReadFile(h,&tmpc,1)) break;
|
||||||
if (0==MultiByteToWideChar(CP_ACP, 0, &tmpc, 1, &c, 1)) c = _T('?');
|
if (0==MultiByteToWideChar(CP_ACP, 0, &tmpc, 1, &c, 1)) c = _T('?');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if (!ReadFile(h,&c,1,&dw,NULL) || dw != 1) break;
|
if (!myReadFile(h,&c,1)) break;
|
||||||
}
|
}
|
||||||
if (parm3)
|
if (parm3)
|
||||||
{
|
{
|
||||||
myitoa(textout,(unsigned int)(_TUCHAR)c);
|
myitoa(textout,(unsigned char)c);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (lc == _T('\r') || lc == _T('\n'))
|
if (lc == _T('\r') || lc == _T('\n'))
|
||||||
|
|
|
@ -540,7 +540,7 @@ int NSISCALL _dodecomp(int offset, HANDLE hFileOut, unsigned char *outbuf, int o
|
||||||
retval=__ensuredata(sizeof(int));
|
retval=__ensuredata(sizeof(int));
|
||||||
if (retval<0) return retval;
|
if (retval<0) return retval;
|
||||||
|
|
||||||
if (!ReadFile(dbd_hFile,(LPVOID)&input_len,sizeof(int),&r,NULL) || r!=sizeof(int)) return -3;
|
if (!myReadFile(dbd_hFile,(LPVOID)&input_len,sizeof(int))) return -3;
|
||||||
dbd_pos+=sizeof(int);
|
dbd_pos+=sizeof(int);
|
||||||
|
|
||||||
retval=__ensuredata(input_len);
|
retval=__ensuredata(input_len);
|
||||||
|
@ -552,7 +552,7 @@ int NSISCALL _dodecomp(int offset, HANDLE hFileOut, unsigned char *outbuf, int o
|
||||||
{
|
{
|
||||||
DWORD t;
|
DWORD t;
|
||||||
DWORD l=min(input_len,IBUFSIZE);
|
DWORD l=min(input_len,IBUFSIZE);
|
||||||
if (!ReadFile(dbd_hFile,(LPVOID)_inbuffer,l,&r,NULL) || l != r) return -3;
|
if (!myReadFile(dbd_hFile,(LPVOID)_inbuffer,r=l)) return -3;
|
||||||
if (!WriteFile(hFileOut,_inbuffer,r,&t,NULL) || t != l) return -2;
|
if (!WriteFile(hFileOut,_inbuffer,r,&t,NULL) || t != l) return -2;
|
||||||
retval+=r;
|
retval+=r;
|
||||||
input_len-=r;
|
input_len-=r;
|
||||||
|
@ -571,8 +571,7 @@ int NSISCALL _dodecomp(int offset, HANDLE hFileOut, unsigned char *outbuf, int o
|
||||||
|
|
||||||
BOOL NSISCALL ReadSelfFile(LPVOID lpBuffer, DWORD nNumberOfBytesToRead)
|
BOOL NSISCALL ReadSelfFile(LPVOID lpBuffer, DWORD nNumberOfBytesToRead)
|
||||||
{
|
{
|
||||||
DWORD rd;
|
return myReadFile(g_db_hFile,lpBuffer,nNumberOfBytesToRead);
|
||||||
return ReadFile(g_db_hFile,lpBuffer,nNumberOfBytesToRead,&rd,NULL) && (rd == nNumberOfBytesToRead);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD NSISCALL SetSelfFilePointer(LONG lDistanceToMove)
|
DWORD NSISCALL SetSelfFilePointer(LONG lDistanceToMove)
|
||||||
|
|
|
@ -449,6 +449,13 @@ TCHAR * NSISCALL my_GetTempFileName(TCHAR *buf, const TCHAR *dir)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL NSISCALL myReadFile(HANDLE h, LPVOID buf, DWORD cb)
|
||||||
|
{
|
||||||
|
DWORD cbio;
|
||||||
|
BOOL r = ReadFile(h, buf, cb, &cbio, NULL);
|
||||||
|
return r && cb == cbio;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef NSIS_SUPPORT_MOVEONREBOOT
|
#ifdef NSIS_SUPPORT_MOVEONREBOOT
|
||||||
/** Modifies the wininit.ini file to rename / delete a file.
|
/** Modifies the wininit.ini file to rename / delete a file.
|
||||||
*
|
*
|
||||||
|
@ -503,7 +510,7 @@ void RenameViaWininit(const TCHAR* prevName, const TCHAR* newName)
|
||||||
|
|
||||||
if (pszWinInit != NULL)
|
if (pszWinInit != NULL)
|
||||||
{
|
{
|
||||||
if (ReadFile(hfile, pszWinInit, dwFileSize, &dwBytes, NULL) && dwFileSize == dwBytes)
|
if (myReadFile(hfile, pszWinInit, dwFileSize))
|
||||||
{
|
{
|
||||||
// Look for the rename section in the current file.
|
// Look for the rename section in the current file.
|
||||||
LPSTR pszRenameSecInFile = mystrstriA(pszWinInit, szRenameSec);
|
LPSTR pszRenameSecInFile = mystrstriA(pszWinInit, szRenameSec);
|
||||||
|
|
|
@ -41,6 +41,7 @@ TCHAR * NSISCALL mystrcat(TCHAR *out, const TCHAR *concat);
|
||||||
TCHAR * NSISCALL mystrstr(TCHAR *a, TCHAR *b);
|
TCHAR * NSISCALL mystrstr(TCHAR *a, TCHAR *b);
|
||||||
WIN32_FIND_DATA * NSISCALL file_exists(TCHAR *buf);
|
WIN32_FIND_DATA * NSISCALL file_exists(TCHAR *buf);
|
||||||
TCHAR * NSISCALL my_GetTempFileName(TCHAR *buf, const TCHAR *dir);
|
TCHAR * NSISCALL my_GetTempFileName(TCHAR *buf, const TCHAR *dir);
|
||||||
|
BOOL NSISCALL myReadFile(HANDLE h, LPVOID buf, DWORD cb);
|
||||||
|
|
||||||
//BOOL NSISCALL my_SetWindowText(HWND hWnd, const TCHAR *val);
|
//BOOL NSISCALL my_SetWindowText(HWND hWnd, const TCHAR *val);
|
||||||
#define my_SetWindowText SetWindowText
|
#define my_SetWindowText SetWindowText
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue