Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Molkentin <danimo@owncloud.com>2015-06-05 10:15:14 +0300
committerDaniel Molkentin <danimo@owncloud.com>2015-06-05 10:15:14 +0300
commiteb6d29a2231f5b86684d1a9988f656bcb0758c34 (patch)
tree064eb00e0285f5540af5fb4ef30875eb9d84d1f2 /cmake/modules/NSIS.template.in
parent3df26ef189e97201bd0ccf955cce7b5bfb97f592 (diff)
Revert "NSIS: Fix NSIS error handling"
This reverts commit 3df26ef189e97201bd0ccf955cce7b5bfb97f592.
Diffstat (limited to 'cmake/modules/NSIS.template.in')
-rw-r--r--cmake/modules/NSIS.template.in78
1 files changed, 38 insertions, 40 deletions
diff --git a/cmake/modules/NSIS.template.in b/cmake/modules/NSIS.template.in
index ae86cdb92..ec8fa1d2a 100644
--- a/cmake/modules/NSIS.template.in
+++ b/cmake/modules/NSIS.template.in
@@ -756,26 +756,25 @@ Function .onInit
${MementoSectionRestore}
- UAC_TryAgain:
- ${Switch} $0
- ${Case} 0
- ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done
- ${IfThen} $3 <> 0 ${|} ${Break} ${|} ;we are admin, let the show go on
- ${If} $1 = 3 ;RunAs completed successfully, but with a non-admin user
- MessageBox mb_YesNo|mb_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND $UAC_INSTALLER_REQUIRE_ADMIN /SD IDNO IDYES UAC_TryAgain IDNO 0
- ${EndIf}
- ;fall-through and die
- ${Case} 1223
- MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_INSTALLER_REQUIRE_ADMIN
- Quit
- ${Case} 1062
- MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_ERROR_LOGON_SERVICE
- Quit
- ${Default}
- MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
- Abort
- Quit
- ${EndSwitch}
+ UAC_Elevate:
+ !insertmacro UAC_RunElevated
+ StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
+ StrCmp 0 $0 0 UAC_Err ; Error?
+ StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
+ Quit
+
+ UAC_Err:
+ MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
+ Abort
+
+ UAC_ElevationAborted:
+ Abort
+
+ UAC_Success:
+ StrCmp 1 $3 +4 ;Admin?
+ StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
+ MessageBox MB_ICONSTOP $UAC_INSTALLER_REQUIRE_ADMIN
+ goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Installer") i .r1 ?e'
@@ -820,26 +819,25 @@ FunctionEnd
Function un.onInit
Call un.SetLang
- UAC_TryAgain:
- ${Switch} $0
- ${Case} 0
- ${IfThen} $1 = 1 ${|} Quit ${|} ;we are the outer process, the inner process has done its work, we are done
- ${IfThen} $3 <> 0 ${|} ${Break} ${|} ;we are admin, let the show go on
- ${If} $1 = 3 ;RunAs completed successfully, but with a non-admin user
- MessageBox mb_YesNo|mb_ICONEXCLAMATION|MB_TOPMOST|MB_SETFOREGROUND $UAC_UNINSTALLER_REQUIRE_ADMIN /SD IDNO IDYES UAC_TryAgain IDNO 0
- ${EndIf}
- ;fall-through and die
- ${Case} 1223
- MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_UNINSTALLER_REQUIRE_ADMIN
- Quit
- ${Case} 1062
- MessageBox MB_ICONSTOP|MB_TOPMOST|MB_SETFOREGROUND $UAC_ERROR_LOGON_SERVICE
- Quit
- ${Default}
- MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
- Abort
- Quit
- ${EndSwitch}
+ UAC_Elevate:
+ !insertmacro UAC_RunElevated
+ StrCmp 1223 $0 UAC_ElevationAborted ; UAC dialog aborted by user?
+ StrCmp 0 $0 0 UAC_Err ; Error?
+ StrCmp 1 $1 0 UAC_Success ;Are we the real deal or just the wrapper?
+ Quit
+
+ UAC_Err:
+ MessageBox MB_ICONSTOP "$UAC_ERROR_ELEVATE $0"
+ Abort
+
+ UAC_ElevationAborted:
+ Abort
+
+ UAC_Success:
+ StrCmp 1 $3 +4 ;Admin?
+ StrCmp 3 $1 0 UAC_ElevationAborted ;Try again?
+ MessageBox MB_ICONSTOP $UAC_UNINSTALLER_REQUIRE_ADMIN
+ goto UAC_Elevate
;Prevent multiple instances.
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${APPLICATION_SHORTNAME}Uninstaller") i .r1 ?e'