git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4170 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-07-15 14:55:18 +00:00
parent 911f5855d8
commit 76dd1565dd
3 changed files with 89 additions and 63 deletions

View file

@ -268,13 +268,22 @@ Section GetOptions
${GetOptions} '/INSTDIR=WxxxW /SILENT=yes' '/INSTDIR=' $OUT1 ${GetOptions} '/INSTDIR=WxxxW /SILENT=yes' '/INSTDIR=' $OUT1
StrCmp $OUT1 'WxxxW' 0 error StrCmp $OUT1 'WxxxW' 0 error
${GetOptions} "/Prm='/D=True' /D=1" '/D=' $OUT1
StrCmp $OUT1 "1" 0 error
${GetOptions} "/D=1 /Prm='/D=True'" '/Prm=' $OUT1
StrCmp $OUT1 "/D=True" 0 error
${GetOptions} `/D=1 /Prm='/D="True" /S="/Temp"'` '/Prm=' $OUT1
StrCmp $OUT1 '/D="True" /S="/Temp"' 0 error
${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR=' $OUT1 ${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR=' $OUT1
StrCmp $OUT1 '"C:/Program Files/Common Files"' 0 error StrCmp $OUT1 '"C:/Program Files/Common Files"' 0 error
${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR*=' $OUT1 ${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR*=' $OUT1
StrCmp $OUT1 '' 0 error StrCmp $OUT1 '' 0 error
${GetOptions} `/INSTDIR=''C:/Program Files/Common Files'' /SILENT=yes` '' $OUT1 ${GetOptions} `/INSTDIR="C:/Program Files/Common Files" /SILENT=yes` '' $OUT1
StrCmp $OUT1 '' 0 error StrCmp $OUT1 '' 0 error
goto +2 goto +2

View file

@ -1,7 +1,7 @@
/* /*
_____________________________________________________________________________ _____________________________________________________________________________
File Functions Header v2.4 File Functions Header v2.5
_____________________________________________________________________________ _____________________________________________________________________________
2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru) 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
@ -919,7 +919,6 @@ RefreshShellIcons
!endif !endif
!macroend !macroend
!macro GetDrives !macro GetDrives
!ifndef ${_FILEFUNC_UN}GetDrives !ifndef ${_FILEFUNC_UN}GetDrives
!verbose push !verbose push
@ -935,11 +934,13 @@ RefreshShellIcons
Push $3 Push $3
Push $4 Push $4
Push $5 Push $5
Push $6
Push $8 Push $8
Push $9 Push $9
System::Alloc 1024 System::Alloc 1024
Pop $2 Pop $2
System::Call 'kernel32::GetLogicalDriveStringsA(i,i) i(1024, r2)'
StrCmp $0 ALL drivestring StrCmp $0 ALL drivestring
StrCmp $0 '' 0 typeset StrCmp $0 '' 0 typeset
@ -947,59 +948,59 @@ RefreshShellIcons
goto drivestring goto drivestring
typeset: typeset:
StrCpy $5 -1 StrCpy $6 -1
IntOp $5 $5 + 1 IntOp $6 $6 + 1
StrCpy $8 $0 1 $5 StrCpy $8 $0 1 $6
StrCmp $8$0 '' enumex StrCmp $8$0 '' enumex
StrCmp $8 '' +2 StrCmp $8 '' +2
StrCmp $8 '+' 0 -4 StrCmp $8 '+' 0 -4
StrCpy $8 $0 $5 StrCpy $8 $0 $6
IntOp $5 $5 + 1 IntOp $6 $6 + 1
StrCpy $0 $0 '' $5 StrCpy $0 $0 '' $6
StrCmp $8 'FDD' 0 +3 StrCmp $8 'FDD' 0 +3
StrCpy $5 2 StrCpy $6 2
goto drivestring goto drivestring
StrCmp $8 'HDD' 0 +3 StrCmp $8 'HDD' 0 +3
StrCpy $5 3 StrCpy $6 3
goto drivestring goto drivestring
StrCmp $8 'NET' 0 +3 StrCmp $8 'NET' 0 +3
StrCpy $5 4 StrCpy $6 4
goto drivestring goto drivestring
StrCmp $8 'CDROM' 0 +3 StrCmp $8 'CDROM' 0 +3
StrCpy $5 5 StrCpy $6 5
goto drivestring goto drivestring
StrCmp $8 'RAM' 0 typeset StrCmp $8 'RAM' 0 typeset
StrCpy $5 6 StrCpy $6 6
drivestring: drivestring:
System::Call 'kernel32::GetLogicalDriveStringsA(i,i) i(1024,r2)' StrCpy $3 $2
enumok: enumok:
System::Call 'kernel32::lstrlenA(t) i(i r2) .r3' System::Call 'kernel32::lstrlenA(t) i(i r3) .r4'
StrCmp $3$0 '0ALL' enumex StrCmp $4$0 '0ALL' enumex
StrCmp $3 0 typeset StrCmp $4 0 typeset
System::Call 'kernel32::GetDriveTypeA(t) i (i r2) .r4' System::Call 'kernel32::GetDriveTypeA(t) i(i r3) .r5'
StrCmp $0 ALL +2 StrCmp $0 ALL +2
StrCmp $4 $5 letter enumnext StrCmp $5 $6 letter enumnext
StrCmp $4 2 0 +3 StrCmp $5 2 0 +3
StrCpy $8 FDD StrCpy $8 FDD
goto letter goto letter
StrCmp $4 3 0 +3 StrCmp $5 3 0 +3
StrCpy $8 HDD StrCpy $8 HDD
goto letter goto letter
StrCmp $4 4 0 +3 StrCmp $5 4 0 +3
StrCpy $8 NET StrCpy $8 NET
goto letter goto letter
StrCmp $4 5 0 +3 StrCmp $5 5 0 +3
StrCpy $8 CDROM StrCpy $8 CDROM
goto letter goto letter
StrCmp $4 6 0 enumex StrCmp $5 6 0 enumex
StrCpy $8 RAM StrCpy $8 RAM
letter: letter:
System::Call '*$2(&t1024 .r9)' System::Call '*$3(&t1024 .r9)'
Push $0 Push $0
Push $1 Push $1
@ -1007,10 +1008,12 @@ RefreshShellIcons
Push $3 Push $3
Push $4 Push $4
Push $5 Push $5
Push $6
Push $8 Push $8
Call $1 Call $1
Pop $9 Pop $9
Pop $8 Pop $8
Pop $6
Pop $5 Pop $5
Pop $4 Pop $4
Pop $3 Pop $3
@ -1020,8 +1023,8 @@ RefreshShellIcons
StrCmp $9 'StopGetDrives' enumex StrCmp $9 'StopGetDrives' enumex
enumnext: enumnext:
IntOp $2 $2 + $3 IntOp $3 $3 + $4
IntOp $2 $2 + 1 IntOp $3 $3 + 1
goto enumok goto enumok
enumex: enumex:
@ -1029,6 +1032,7 @@ RefreshShellIcons
Pop $9 Pop $9
Pop $8 Pop $8
Pop $6
Pop $5 Pop $5
Pop $4 Pop $4
Pop $3 Pop $3
@ -1481,58 +1485,65 @@ RefreshShellIcons
Push $3 Push $3
Push $4 Push $4
Push $5 Push $5
Push $6
Push $7
StrCpy $2 $1 '' 1 StrCpy $2 $1 '' 1
StrCpy $1 $1 1 StrCpy $1 $1 1
StrLen $3 '$1$2' StrLen $3 $2
StrCpy $7 0
begin:
StrCpy $4 -1 StrCpy $4 -1
StrCpy $6 ''
quote:
IntOp $4 $4 + 1
StrCpy $5 $0 1 $4
StrCmp $5$7 '0' notfound
StrCmp $5 '' trimright
StrCmp $5 '"' 0 +7
StrCmp $6 '' 0 +3
StrCpy $6 '"'
goto quote
StrCmp $6 '"' 0 +3
StrCpy $6 ''
goto quote
StrCmp $5 `'` 0 +7
StrCmp $6 `` 0 +3
StrCpy $6 `'`
goto quote
StrCmp $6 `'` 0 +3
StrCpy $6 ``
goto quote
StrCmp $5 '`' 0 +7
StrCmp $6 '' 0 +3
StrCpy $6 '`'
goto quote
StrCmp $6 '`' 0 +3
StrCpy $6 ''
goto quote
StrCmp $6 '"' quote
StrCmp $6 `'` quote
StrCmp $6 '`' quote
StrCmp $5 $1 0 quote
StrCmp $7 0 trimleft trimright
trimleft: trimleft:
IntOp $4 $4 + 1 IntOp $4 $4 + 1
StrCpy $5 $0 $3 $4 StrCpy $5 $0 $3 $4
StrCmp $5 '' notfound StrCmp $5 '' notfound
StrCmp $5 '$1$2' 0 trimleft StrCmp $5 $2 0 quote
IntOp $4 $4 + $3 IntOp $4 $4 + $3
StrCpy $0 $0 '' $4 StrCpy $0 $0 '' $4
StrCpy $4 $0 1 StrCpy $4 $0 1
StrCmp $4 ' ' 0 +3 StrCmp $4 ' ' 0 +3
StrCpy $0 $0 '' 1 StrCpy $0 $0 '' 1
goto -3 goto -3
StrCpy $7 1
StrCpy $3 '' goto begin
StrCpy $4 -1
trimright: trimright:
IntOp $4 $4 + 1
StrCpy $5 $0 1 $4
StrCmp $5 '' found
StrCmp $5 '"' 0 +7
StrCmp $3 '' 0 +3
StrCpy $3 '"'
goto trimright
StrCmp $3 '"' 0 +3
StrCpy $3 ''
goto trimright
StrCmp $5 `'` 0 +7
StrCmp $3 `` 0 +3
StrCpy $3 `'`
goto trimright
StrCmp $3 `'` 0 +3
StrCpy $3 ``
goto trimright
StrCmp $5 '`' 0 +7
StrCmp $3 '' 0 +3
StrCpy $3 '`'
goto trimright
StrCmp $3 '`' 0 +3
StrCpy $3 ''
goto trimright
StrCmp $3 '"' trimright
StrCmp $3 `'` trimright
StrCmp $3 '`' trimright
StrCmp $5 $1 0 trimright
found:
StrCpy $0 $0 $4 StrCpy $0 $0 $4
StrCpy $4 $0 1 -1 StrCpy $4 $0 1 -1
StrCmp $4 ' ' 0 +3 StrCmp $4 ' ' 0 +3
@ -1551,6 +1562,8 @@ RefreshShellIcons
StrCpy $0 '' StrCpy $0 ''
end: end:
Pop $7
Pop $6
Pop $5 Pop $5
Pop $4 Pop $4
Pop $3 Pop $3

View file

@ -35,6 +35,10 @@ LineSum
Afrow UK (Based on his idea of Function "LineCount") Afrow UK (Based on his idea of Function "LineCount")
FileJoin FileJoin
Afrow UK (Based on his idea of Function "JoinFiles") Afrow UK (Based on his idea of Function "JoinFiles")
ConfigRead
vbgunz (His idea)
ConfigWrite
vbgunz (His idea)
TrimNewLines TrimNewLines
sunjammer (Based on his Function "TrimNewLines") sunjammer (Based on his Function "TrimNewLines")
*/ */