- 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:
parent
69e2d02cc7
commit
acf798c33b
3 changed files with 18 additions and 13 deletions
|
@ -1125,24 +1125,28 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
|
|
||||||
{
|
{
|
||||||
int l=1;
|
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;
|
if (sec->flags & SF_RO) l+=3;
|
||||||
|
|
||||||
tv.item.state=INDEXTOSTATEIMAGEMASK(l);
|
tv.item.state=INDEXTOSTATEIMAGEMASK(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sec->flags&SF_BOLD)
|
//if (sec->flags&SF_BOLD)
|
||||||
{
|
{
|
||||||
tv.item.stateMask|=TVIS_BOLD;
|
// SF_BOLD << 1 == 16 == TVIS_BOLD
|
||||||
tv.item.state|=TVIS_BOLD;
|
tv.item.stateMask|=(sec->flags&SF_BOLD)<<1;
|
||||||
|
tv.item.state|=(sec->flags&SF_BOLD)<<1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sec->flags&SF_SUBSEC)
|
if (sec->flags&SF_SUBSEC)
|
||||||
{
|
{
|
||||||
tv.item.mask|=TVIF_CHILDREN;
|
tv.item.mask|=TVIF_CHILDREN;
|
||||||
tv.item.cChildren=1;
|
tv.item.cChildren=1;
|
||||||
if (sec->flags&SF_EXPAND)
|
//if (sec->flags&SF_EXPAND)
|
||||||
tv.item.state|=TVIS_EXPANDED;
|
// TVIS_EXPANDED == SF_EXPAND
|
||||||
|
tv.item.state|=sec->flags&SF_EXPAND;
|
||||||
Par = hTreeItems[x] = TreeView_InsertItem(hwndTree1,&tv);
|
Par = hTreeItems[x] = TreeView_InsertItem(hwndTree1,&tv);
|
||||||
doLines=1;
|
doLines=1;
|
||||||
}
|
}
|
||||||
|
@ -1188,7 +1192,9 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||||
tvItem.mask = TVIF_STATE;
|
tvItem.mask = TVIF_STATE;
|
||||||
tvItem.stateMask = TVIS_BOLD;
|
tvItem.stateMask = TVIS_BOLD;
|
||||||
tvItem.state = 0;
|
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_SetItem(hwndTree1, &tvItem);
|
||||||
|
|
||||||
TreeView_Expand(hwndTree1, tvItem.hItem, flags & SF_EXPAND ? TVE_EXPAND : TVE_COLLAPSE);
|
TreeView_Expand(hwndTree1, tvItem.hItem, flags & SF_EXPAND ? TVE_EXPAND : TVE_COLLAPSE);
|
||||||
|
|
|
@ -134,9 +134,8 @@ const char * NSISCALL loadHeaders(int cl_flags)
|
||||||
left = m_length = GetFileSize(db_hFile,NULL);
|
left = m_length = GetFileSize(db_hFile,NULL);
|
||||||
while (left > 0)
|
while (left > 0)
|
||||||
{
|
{
|
||||||
static char temp[512];
|
static char temp[32768];
|
||||||
DWORD l = left;
|
DWORD l = min(left, (g_filehdrsize ? 32768 : 512));
|
||||||
l = min(l, 512);
|
|
||||||
if (!ReadSelfFile(temp, l))
|
if (!ReadSelfFile(temp, l))
|
||||||
{
|
{
|
||||||
#if defined(NSIS_CONFIG_CRC_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)
|
#if defined(NSIS_CONFIG_CRC_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)
|
||||||
|
|
|
@ -152,7 +152,7 @@ void NSISCALL trimslashtoend(char *buf)
|
||||||
|
|
||||||
int NSISCALL validpathspec(char *ubuf)
|
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)==':'));
|
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--)
|
while (n--)
|
||||||
{
|
{
|
||||||
char prefix[4] = "nsa";
|
char prefix[4] = "nsa";
|
||||||
prefix[2] = 'a' + (char)(GetTickCount() % 26);
|
prefix[2] += (char)(GetTickCount() % 26);
|
||||||
if (GetTempFileName(dir, prefix, 0, buf))
|
if (GetTempFileName(dir, prefix, 0, buf))
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
@ -415,7 +415,7 @@ int NSISCALL myatoi(char *s)
|
||||||
m=8; // base of 8
|
m=8; // base of 8
|
||||||
t='7'; // cap top at 7
|
t='7'; // cap top at 7
|
||||||
}
|
}
|
||||||
if (s[0] == 'x' || s[0] == 'X')
|
if ((s[0] & ~0x20) == 'X')
|
||||||
{
|
{
|
||||||
m=16; // base of 16
|
m=16; // base of 16
|
||||||
s++; // advance over 'x'
|
s++; // advance over 'x'
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue