fixed bug #1829540 - VPatchFile macro does not handle spaces or absolute paths
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5366 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
feb5dca48e
commit
0b8eb1365e
1 changed files with 39 additions and 12 deletions
|
@ -4,19 +4,46 @@
|
||||||
; Library with macro for use with VPatch (DLL version) in NSIS 2.0.5+
|
; Library with macro for use with VPatch (DLL version) in NSIS 2.0.5+
|
||||||
; Created by Koen van de Sande
|
; Created by Koen van de Sande
|
||||||
|
|
||||||
|
!include LogicLib.nsh
|
||||||
|
|
||||||
!macro VPatchFile PATCHDATA SOURCEFILE TEMPFILE
|
!macro VPatchFile PATCHDATA SOURCEFILE TEMPFILE
|
||||||
|
|
||||||
|
Push $1
|
||||||
|
Push $2
|
||||||
|
Push $3
|
||||||
|
Push $4
|
||||||
|
|
||||||
|
Push ${PATCHDATA}
|
||||||
|
Push ${SOURCEFILE}
|
||||||
|
Push ${TEMPFILE}
|
||||||
|
|
||||||
|
Pop $2 # temp file
|
||||||
|
Pop $3 # source file
|
||||||
|
Pop $4 # patch data
|
||||||
|
|
||||||
InitPluginsDir
|
InitPluginsDir
|
||||||
File /oname=$PLUGINSDIR\${PATCHDATA} ${PATCHDATA}
|
GetTempFileName $1 $PLUGINSDIR
|
||||||
vpatch::vpatchfile "$PLUGINSDIR\${PATCHDATA}" "${SOURCEFILE}" "${TEMPFILE}"
|
File /oname=$1 $4
|
||||||
|
|
||||||
|
vpatch::vpatchfile $1 $3 $2
|
||||||
|
Pop $4
|
||||||
|
DetailPrint $4
|
||||||
|
|
||||||
|
StrCpy $4 $4 2
|
||||||
|
${Unless} $4 == "OK"
|
||||||
|
SetErrors
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
${If} ${FileExists} $2
|
||||||
|
Delete $3
|
||||||
|
Rename /REBOOTOK $2 $3
|
||||||
|
${EndIf}
|
||||||
|
|
||||||
|
Delete $1
|
||||||
|
|
||||||
|
Pop $4
|
||||||
|
Pop $3
|
||||||
|
Pop $2
|
||||||
Pop $1
|
Pop $1
|
||||||
DetailPrint $1
|
|
||||||
StrCpy $1 $1 2
|
|
||||||
StrCmp $1 "OK" ok_${SOURCEFILE}
|
|
||||||
SetErrors
|
|
||||||
ok_${SOURCEFILE}:
|
|
||||||
IfFileExists "${TEMPFILE}" +1 end_${SOURCEFILE}
|
|
||||||
Delete "${SOURCEFILE}"
|
|
||||||
Rename /REBOOTOK "${TEMPFILE}" "${SOURCEFILE}"
|
|
||||||
end_${SOURCEFILE}:
|
|
||||||
Delete "$PLUGINSDIR\${PATCHDATA}"
|
|
||||||
!macroend
|
!macroend
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue