git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4181 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-07-21 17:01:32 +00:00
parent 7140aeede2
commit 7e2442e17e
4 changed files with 64 additions and 66 deletions

View file

@ -65,7 +65,7 @@ Call functions:
\c ; /B=0 - Banner isn't used (default)
\c ; /B=1 - Banner is used. Callback when function
\c ; start to search in new directory
\c "Function" ; Callback function then found
\c "Function" ; Callback function when found
\c
\c Function "Function"
\c ; $R9 "path\name"
@ -420,7 +420,7 @@ Call functions:
\c ; [ALL]
\c ; Find all drives by letter (default)
\c ;
\c "Function" ; Callback function then found
\c "Function" ; Callback function when found
\c
\c Function "Function"
\c ; $9 "drive letter" (a:\ c:\ ...)
@ -611,7 +611,7 @@ Call functions:
\S1{} GetExeName
\b Get installer filename (also valid case for Windows 9X).
\b Get installer filename (with valid case for Windows 9X/Me).
\\<b\\>Syntax:\\</b\\>
@ -626,7 +626,7 @@ Call functions:
\S1{} GetExePath
\b Get installer pathname ($EXEDIR with valid case for Windows 9X).
\b Get installer pathname ($EXEDIR with valid case for Windows 9X/Me).
\\<b\\>Syntax:\\</b\\>
@ -792,18 +792,20 @@ Call functions:
\c "[PathString]" ;
\c ;
\c "[Option]" ; [Lenght][A|B|C]
\c "[Option]" ; [Length][A|B|C|D]
\c ;
\c ; Lenght -Maximum string lenght
\c ; Length -Maximum string length
\c ; A -Trim center path (default)
\c ; (C:\root\...\third path)
\c ; If A mode not possible Then will be used B mode
\c ; If B mode not possible Then will be used C mode
\c ; B -Trim right path
\c ; (C:\root\second path\...)
\c ; If B mode not possible Then will be used C mode
\c ; C -Trim right string
\c ; (C:\root\second path\third p...)
\c ; D -Trim right string + filename
\c ; (C:\root\second p...\third path)
\c ; If D mode not possible Then will be used C mode
\c ;
\c $var ; Result: Trimmed path

View file

@ -100,7 +100,7 @@ Function ShowCustom
StrCpy $GETBASENAME1 'C:\path\file.dll'
StrCpy $GETFILEEXT1 'C:\path\file.dll'
StrCpy $BANNERTRIMPATH1 'C:\Server\Documents\Terminal\license.htm'
StrCpy $BANNERTRIMPATH2 '35A'
StrCpy $BANNERTRIMPATH2 '34A'
StrCpy $DIRSTATE1 '$TEMP'
GetDlgItem $1 $HWND 1203

View file

@ -451,6 +451,18 @@ Section BannerTrimPath
${BannerTrimPath} 'C:\12\3456\789' '11C' $OUT1
StrCmp $OUT1 'C:\12\34...' 0 error
${BannerTrimPath} 'C:\12\3456\789' '9D' $OUT1
StrCmp $OUT1 'C:\12\...' 0 error
${BannerTrimPath} 'C:\12\3456\789' '10D' $OUT1
StrCmp $OUT1 'C:\...\789' 0 error
${BannerTrimPath} 'C:\12\3456\789' '11D' $OUT1
StrCmp $OUT1 'C:\1...\789' 0 error
${BannerTrimPath} '123456789' '5D' $OUT1
StrCmp $OUT1 '12...' 0 error
goto +2
error:
SetErrors

View file

@ -1,7 +1,7 @@
/*
_____________________________________________________________________________
File Functions Header v2.5
File Functions Header v2.6
_____________________________________________________________________________
2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
@ -1063,34 +1063,41 @@ RefreshShellIcons
Push $4
Push $5
Push $6
Push $7
ClearErrors
StrCmp $1 'L' gettime
System::Call '*(i,l,l,l,i,i,i,i,&t260,&t14) i .r2'
System::Call 'kernel32::FindFirstFileA(t,i)i(r0,r2) .r3'
IntCmp $3 -1 error
System::Call 'kernel32::FindClose(i)i(r3)'
StrCmp $1 'A' getfile
StrCmp $1 'C' getfile
StrCmp $1 'M' getfile
goto error
getfile:
IfFileExists $0 0 error
System::Call '*(i,l,l,l,i,i,i,i,&t260,&t14) i .r6'
System::Call 'kernel32::FindFirstFileA(t,i)i(r0,r6) .r2'
System::Call 'kernel32::FindClose(i)i(r2)'
gettime:
System::Call '*(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2) i .r0'
System::Call '*(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2) i .r7'
StrCmp $1 'L' 0 filetime
System::Call 'kernel32::GetLocalTime(i)i(r0)'
System::Call 'kernel32::GetLocalTime(i)i(r7)'
goto convert
filetime:
System::Call '*$2(i,l,l,l,i,i,i,i,&t260,&t14)i(,.r6,.r5,.r4)'
System::Call '*$6(i,l,l,l,i,i,i,i,&t260,&t14)i(,.r4,.r3,.r2)'
System::Free $6
StrCmp $1 'A' 0 +3
StrCpy $4 $5
goto +5
StrCmp $1 'C' 0 +3
StrCpy $4 $6
goto +2
StrCmp $1 'M' 0 error
System::Call 'kernel32::FileTimeToLocalFileTime(*l,*l)i(r4,.r3)'
System::Call 'kernel32::FileTimeToSystemTime(*l,i)i(r3,r0)'
StrCpy $2 $3
goto +3
StrCmp $1 'C' 0 +2
StrCpy $2 $4
System::Call 'kernel32::FileTimeToLocalFileTime(*l,*l)i(r2,.r3)'
System::Call 'kernel32::FileTimeToSystemTime(*l,i)i(r3,r7)'
convert:
System::Call '*$0(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2)i(.r5,.r6,.r4,.r0,.r3,.r2,.r1,)'
System::Call '*$7(&i2,&i2,&i2,&i2,&i2,&i2,&i2,&i2)i(.r5,.r6,.r4,.r0,.r3,.r2,.r1,)'
System::Free $7
IntCmp $0 9 0 0 +2
StrCpy $0 '0$0'
@ -1134,6 +1141,7 @@ RefreshShellIcons
StrCpy $6 ''
end:
Pop $7
Exch $6
Exch
Exch $5
@ -1357,23 +1365,8 @@ RefreshShellIcons
Function ${_FILEFUNC_UN}GetExeName
Push $0
Push $1
StrCpy $1 $CMDLINE 1
StrCmp $1 '"' 0 kernel
StrCpy $1 0
IntOp $1 $1 + 1
StrCpy $0 $CMDLINE 1 $1
StrCmp $0 '"' 0 -2
IntOp $1 $1 - 1
StrCpy $0 $CMDLINE $1 1
goto end
kernel:
System::Call 'kernel32::GetModuleFileNameA(i 0, t .r0, i 1024) i r1'
end:
Pop $1
System::Call 'kernel32::GetModuleFileNameA(i 0, t .r0, i 1024)'
System::Call 'kernel32::GetLongPathNameA(t r0, t .r0, i 1024)'
Exch $0
FunctionEnd
@ -1391,31 +1384,8 @@ RefreshShellIcons
Function ${_FILEFUNC_UN}GetExePath
Push $0
Push $1
Push $2
StrCpy $1 $CMDLINE 1
StrCmp $1 '"' 0 exedir
StrCpy $1 0
IntOp $1 $1 + 1
StrCpy $0 $CMDLINE 1 $1
StrCmp $0 '"' 0 -2
IntOp $1 $1 - 1
StrCpy $0 $CMDLINE $1 1
StrCpy $1 0
IntOp $1 $1 - 1
StrCpy $2 $0 1 $1
StrCmp $2 '\' 0 -2
StrCpy $0 $0 $1
goto end
exedir:
StrCpy $0 $EXEDIR
end:
Pop $2
Pop $1
System::Call 'kernel32::GetLongPathNameA(t r0, t .r0, i 1024)'
Exch $0
FunctionEnd
@ -1814,6 +1784,7 @@ RefreshShellIcons
StrCmp $3 'A' A-trim
StrCmp $3 'B' B-trim
StrCmp $3 'C' C-trim
StrCmp $3 'D' D-trim
A-trim:
StrCpy $3 $0 1 1
@ -1854,6 +1825,19 @@ RefreshShellIcons
StrCpy $0 '$0...'
goto end
D-trim:
StrCpy $3 -1
IntOp $3 $3 - 1
StrCmp $3 -$2 C-trim
StrCpy $4 $0 1 $3
StrCmp $4 '\' 0 -3
StrCpy $4 $0 '' $3
IntOp $3 $1 + $3
IntCmp $3 2 C-trim C-trim
StrCpy $0 $0 $3
StrCpy $0 '$0...$4'
goto end
empty:
StrCpy $0 ''