- 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; 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);

View file

@ -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)

View file

@ -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'