- Made CRC checking from CD-ROM or a network drive faster

- Some more optimizations


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3225 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2003-11-28 17:57:59 +00:00
parent 69e2d02cc7
commit acf798c33b
3 changed files with 18 additions and 13 deletions

View file

@ -1125,24 +1125,28 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
{
int l=1;
if (sec->flags & SF_SELECTED) l++;
// Sf_SELECTED == 1
l += sec->flags & SF_SELECTED;
//if (sec->flags & SF_SELECTED) l++;
if (sec->flags & SF_RO) l+=3;
tv.item.state=INDEXTOSTATEIMAGEMASK(l);
}
if (sec->flags&SF_BOLD)
//if (sec->flags&SF_BOLD)
{
tv.item.stateMask|=TVIS_BOLD;
tv.item.state|=TVIS_BOLD;
// SF_BOLD << 1 == 16 == TVIS_BOLD
tv.item.stateMask|=(sec->flags&SF_BOLD)<<1;
tv.item.state|=(sec->flags&SF_BOLD)<<1;
}
if (sec->flags&SF_SUBSEC)
{
tv.item.mask|=TVIF_CHILDREN;
tv.item.cChildren=1;
if (sec->flags&SF_EXPAND)
tv.item.state|=TVIS_EXPANDED;
//if (sec->flags&SF_EXPAND)
// TVIS_EXPANDED == SF_EXPAND
tv.item.state|=sec->flags&SF_EXPAND;
Par = hTreeItems[x] = TreeView_InsertItem(hwndTree1,&tv);
doLines=1;
}
@ -1188,7 +1192,9 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
tvItem.mask = TVIF_STATE;
tvItem.stateMask = TVIS_BOLD;
tvItem.state = 0;
if (flags&SF_BOLD) tvItem.state |= TVIS_BOLD;
//if (flags&SF_BOLD) tvItem.state |= TVIS_BOLD;
// SF_BOLD << 1 == 16 == TVIS_BOLD
tvItem.state|=(flags&SF_BOLD)<<1;
TreeView_SetItem(hwndTree1, &tvItem);
TreeView_Expand(hwndTree1, tvItem.hItem, flags & SF_EXPAND ? TVE_EXPAND : TVE_COLLAPSE);

View file

@ -134,9 +134,8 @@ const char * NSISCALL loadHeaders(int cl_flags)
left = m_length = GetFileSize(db_hFile,NULL);
while (left > 0)
{
static char temp[512];
DWORD l = left;
l = min(l, 512);
static char temp[32768];
DWORD l = min(left, (g_filehdrsize ? 32768 : 512));
if (!ReadSelfFile(temp, l))
{
#if defined(NSIS_CONFIG_CRC_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)

View file

@ -152,7 +152,7 @@ void NSISCALL trimslashtoend(char *buf)
int NSISCALL validpathspec(char *ubuf)
{
char dl = ubuf[0] | 0x20; // convert drive letter to lower case
char dl = ubuf[0] | 0x20; // convert alleged drive letter to lower case
return ((*(WORD*)ubuf==CHAR2_TO_WORD('\\','\\')) || (dl >= 'a' && dl <= 'z' && *CharNext(ubuf)==':'));
}
@ -270,7 +270,7 @@ char * NSISCALL my_GetTempFileName(char *buf, const char *dir)
while (n--)
{
char prefix[4] = "nsa";
prefix[2] = 'a' + (char)(GetTickCount() % 26);
prefix[2] += (char)(GetTickCount() % 26);
if (GetTempFileName(dir, prefix, 0, buf))
return buf;
}
@ -415,7 +415,7 @@ int NSISCALL myatoi(char *s)
m=8; // base of 8
t='7'; // cap top at 7
}
if (s[0] == 'x' || s[0] == 'X')
if ((s[0] & ~0x20) == 'X')
{
m=16; // base of 16
s++; // advance over 'x'