home *** CD-ROM | disk | FTP | other *** search
- ; ---------------------
- ; 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`
-
- # for usage of artificial functions inside artificial functions
- # macro recursion is prohibited
- !macro CallArtificialFunction2 NAME
- !ifndef __UNINSTALL__
- !define CallArtificialFunction2_TYPE inst
- !else
- !define CallArtificialFunction2_TYPE uninst
- !endif
- Call :.${NAME}${CallArtificialFunction2_TYPE}
- !ifndef ${NAME}${CallArtificialFunction2_TYPE}_DEFINED
- Goto ${NAME}${CallArtificialFunction2_TYPE}_DONE
- !define ${NAME}${CallArtificialFunction2_TYPE}_DEFINED
- .${NAME}${CallArtificialFunction2_TYPE}:
- !insertmacro ${NAME}
- Return
- ${NAME}${CallArtificialFunction2_TYPE}_DONE:
- !endif
- !undef CallArtificialFunction2_TYPE
- !macroend
- !define CallArtificialFunction2 `!insertmacro CallArtificialFunction2`
-
- !endif # !___UTIL__NSH___
-
- !verbose pop
-