You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
; ReadINIStrWithDefault 1.1 (2009-05-12)
|
|
;
|
|
; Substitutes a default value if the INI is undefined
|
|
; Copyright 2008-2009 John T. Haller of PortableApps.com
|
|
; Released under the BSD
|
|
;
|
|
; Usage: ${ReadINIStrWithDefault} OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE
|
|
;
|
|
; History:
|
|
; 1.1 (2009-05-12): Fixed error with $0 and $2 being swapped
|
|
|
|
Function ReadINIStrWithDefault
|
|
;Start with a clean slate
|
|
ClearErrors
|
|
|
|
;Get our parameters
|
|
Exch $0 ;DEFAULT_VALUE
|
|
Exch
|
|
Exch $1 ;ENTRY_NAME
|
|
Exch 2
|
|
Exch $2 ;SECTION_NAME
|
|
Exch 3
|
|
Exch $3 ;INI_FILENAME
|
|
Push $4 ;OUTPUT_VALUE
|
|
|
|
;Read from the INI
|
|
ReadINIStr $4 $3 $2 $1
|
|
IfErrors 0 +3
|
|
StrCpy $4 $0
|
|
ClearErrors
|
|
|
|
;Keep the variable for last
|
|
StrCpy $0 $4
|
|
|
|
;Clear the stack
|
|
Pop $4
|
|
Pop $3
|
|
Exch 2
|
|
Pop $2
|
|
Pop $1
|
|
|
|
;Reset the last variable and leave our result on the stack
|
|
Exch $0
|
|
FunctionEnd
|
|
|
|
!macro ReadINIStrWithDefault OUTPUT_VALUE INI_FILENAME SECTION_NAME ENTRY_NAME DEFAULT_VALUE
|
|
Push `${INI_FILENAME}`
|
|
Push `${SECTION_NAME}`
|
|
Push `${ENTRY_NAME}`
|
|
Push `${DEFAULT_VALUE}`
|
|
Call ReadINIStrWithDefault
|
|
Pop `${OUTPUT_VALUE}`
|
|
!macroend
|
|
|
|
!define ReadINIStrWithDefault '!insertmacro "ReadINIStrWithDefault"' |