From 7c1a3aa6399dcd8262d37814d5d7e36d047fd453 Mon Sep 17 00:00:00 2001 From: kichik Date: Fri, 21 Nov 2008 00:04:05 +0000 Subject: [PATCH] extract CallArtificialFunction to Util.nsh git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5780 212acab6-be3b-0410-9dea-997c60f758d6 --- Include/SConscript | 1 + Include/Util.nsh | 35 +++++++++++++++++++++++++++++++++++ Include/WinVer.nsh | 20 +------------------- 3 files changed, 37 insertions(+), 19 deletions(-) create mode 100644 Include/Util.nsh diff --git a/Include/SConscript b/Include/SConscript index 851bc416..425dbf19 100644 --- a/Include/SConscript +++ b/Include/SConscript @@ -11,6 +11,7 @@ includes = Split(""" StrFunc.nsh TextFunc.nsh UpgradeDLL.nsh + Util.nsh VB6RunTime.nsh WinMessages.nsh WinVer.nsh diff --git a/Include/Util.nsh b/Include/Util.nsh new file mode 100644 index 00000000..1a55c918 --- /dev/null +++ b/Include/Util.nsh @@ -0,0 +1,35 @@ +; --------------------- +; Util.nsh +; --------------------- +; +; Voodoo macros to make end-user usage easier. This may be documented someday. + +!verbose push +!verbose 3 + +!ifndef ___UTIL__NSH___ +!define ___UTIL__NSH___ + +# see WinVer.nsh and *Func.nsh for usage examples +!macro CallArtificialFunction NAME + !ifndef __UNINSTALL__ + !define CallArtificialFunction_TYPE inst + !else + !define CallArtificialFunction_TYPE uninst + !endif + Call :.${NAME}${CallArtificialFunction_TYPE} + !ifndef ${NAME}${CallArtificialFunction_TYPE}_DEFINED + Goto ${NAME}${CallArtificialFunction_TYPE}_DONE + !define ${NAME}${CallArtificialFunction_TYPE}_DEFINED + .${NAME}${CallArtificialFunction_TYPE}: + !insertmacro ${NAME} + Return + ${NAME}${CallArtificialFunction_TYPE}_DONE: + !endif + !undef CallArtificialFunction_TYPE +!macroend +!define CallArtificialFunction `!insertmacro CallArtificialFunction` + +!endif # !___UTIL__NSH___ + +!verbose pop diff --git a/Include/WinVer.nsh b/Include/WinVer.nsh index 11af7ac2..a17a01e6 100644 --- a/Include/WinVer.nsh +++ b/Include/WinVer.nsh @@ -83,6 +83,7 @@ !define ___WINVER__NSH___ !include LogicLib.nsh +!include Util.nsh !define WINVER_95 0x400 !define WINVER_98 0x40A ;4.10 @@ -94,25 +95,6 @@ !define WINVER_2003 0x502 !define WINVER_VISTA 0x600 -!macro CallArtificialFunction NAME - !ifndef __UNINSTALL__ - !define CallArtificialFunction_TYPE inst - !else - !define CallArtificialFunction_TYPE uninst - !endif - Call :.${NAME}${CallArtificialFunction_TYPE} - !ifndef ${NAME}${CallArtificialFunction_TYPE}_DEFINED - Goto ${NAME}${CallArtificialFunction_TYPE}_DONE - !define ${NAME}${CallArtificialFunction_TYPE}_DEFINED - .${NAME}${CallArtificialFunction_TYPE}: - !insertmacro ${NAME} - Return - ${NAME}${CallArtificialFunction_TYPE}_DONE: - !endif - !undef CallArtificialFunction_TYPE -!macroend -!define CallArtificialFunction `!insertmacro CallArtificialFunction` - !macro __GetWinVer !insertmacro _LOGICLIB_TEMP System::Call kernel32::GetVersion()i.s