diff --git a/Docs/src/headers.but b/Docs/src/headers.but
index 506734f5..3c188a19 100644
--- a/Docs/src/headers.but
+++ b/Docs/src/headers.but
@@ -30,7 +30,7 @@ Call functions:
\c SectionEnd
-\S1{} Locate
+\S1{locate} Locate
\b Find files, directories and empty directories with mask and size options.
@@ -80,8 +80,9 @@ Call functions:
\c FunctionEnd
\\Note:\\
-\\
-Error flag if disk or directory isn't exist
-\\
-Error flag if syntax error
+\\
- Error flag if disk or directory isn't exist
+\\
- Error flag if syntax error
+\\
- See also \W{http://nsis.sourceforge.net/Locate_plugin}{Locate plugin}
\\Example (Find one file):\\
@@ -263,7 +264,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\\Example (Locate with banner - "\W{http://nsis.sourceforge.net/Banner_with_Cancel_button}{NxS}" plugin required):\\
+\\Example (Locate with banner - \W{http://nsis.sourceforge.net/Nxs_plug-in}{NxS plugin} required):\\
\c Section
\c nxs::Show /NOUNLOAD `$(^Name) Setup` /top `Setup searching something$\r$\nPlease wait... If you can..` /h 1 /can 1 /end
@@ -289,7 +290,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} GetSize
+\S1{getsize} GetSize
\b Find the size of a file, files mask or directory.
@@ -322,8 +323,9 @@ Call functions:
\c $var3 ; Result3: Sum of directories
\\Note:\\
-\\
-Error flag if disk or directory isn't exist
-\\
-Error flag if syntax error
+\\
- Error flag if disk or directory isn't exist
+\\
- Error flag if syntax error
+\\
- See also \W{http://nsis.sourceforge.net/Locate_plugin}{Locate plugin}
\\Example (1):\\
@@ -368,7 +370,7 @@ Call functions:
\c MessageBox MB_OK "Error"
\c SectionEnd
-\S1{} DriveSpace
+\S1{drivespace} DriveSpace
\b Get total, occupied or free space of the drive.
@@ -391,8 +393,8 @@ Call functions:
\c $var ; Result: Size
\\Note:\\
-\\
-Error flag if disk isn't exist or not ready
-\\
-Error flag if syntax error
+\\
- Error flag if disk isn't exist or not ready
+\\
- Error flag if syntax error
\\Example:\\
@@ -402,7 +404,7 @@ Call functions:
\c ; $R0="2530" megabytes free on drive C:
\c SectionEnd
-\S1{} GetDrives
+\S1{getdrives} GetDrives
\b Find all available drives in the system.
@@ -475,7 +477,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} GetTime
+\S1{gettime} GetTime
\b Get local or system time.
@@ -506,8 +508,9 @@ Call functions:
\c $var7 ; Result7: seconds
\\Note:\\
-\\
-Error flag if file isn't exist
-\\
-Error flag if syntax error
+\\
- Error flag if file isn't exist
+\\
- Error flag if syntax error
+\\
- See also \W{http://nsis.sourceforge.net/Time_plugin}{Time plugin}
\\Example (Get local time):\\
@@ -575,7 +578,7 @@ Call functions:
\c MessageBox MB_OK 'Date=$0/$1/$2 ($3)$\nTime=$4:$5:$6 $7'
\c SectionEnd
-\S1{} GetFileAttributes
+\S1{getfileattributes} GetFileAttributes
\b Get attributes of file or directory.
@@ -599,7 +602,7 @@ Call functions:
\c ; $var=0 file has no specified attributes
\\Note:\\
-\\
-Error flag if file isn't exist
+\\
- Error flag if file doesn't exist
\\Example1:\\
@@ -623,7 +626,7 @@ Call functions:
\c ; $R0=0
\c SectionEnd
-\S1{} GetFileVersion
+\S1{getfileversion} GetFileVersion
\b Get version information from executable file.
@@ -635,8 +638,8 @@ Call functions:
\c $var ; Result: Version number
\\Note:\\
-\\
-Error flag if file isn't exist
-\\
-Error flag if file isn't contain version information
+\\
- Error flag if file doesn't exist
+\\
- Error flag if file doesn't contain version information
\\Example:\\
@@ -646,7 +649,7 @@ Call functions:
\c ; $R0="1.1.0.12"
\c SectionEnd
-\S1{} GetExeName
+\S1{getexename} GetExeName
\b Get installer filename (with valid case for Windows 98/Me).
@@ -661,7 +664,7 @@ Call functions:
\c ; $R0="C:\ftp\program.exe"
\c SectionEnd
-\S1{} GetExePath
+\S1{getexepath} GetExePath
\b Get installer pathname ($EXEDIR with valid case for Windows 98/Me).
@@ -676,7 +679,7 @@ Call functions:
\c ; $R0="C:\ftp"
\c SectionEnd
-\S1{} GetParameters
+\S1{headers_getparameters} GetParameters
\b Get command line parameters.
@@ -691,7 +694,7 @@ Call functions:
\c ; $R0="[parameters]"
\c SectionEnd
-\S1{} GetOptions
+\S1{getoptions} GetOptions
\b Get options from command line parameters.
@@ -706,14 +709,18 @@ Call functions:
\c $var ; Result: option string
\\Note:\\
-\\
-First option symbol it is delimiter
+\\
- Error flag if option not found
+\\
- First option symbol it is delimiter
\\Example1:\\
\c Section
-\c ${GetOptions} "/INSTDIR=Temp /SILENT=yes /ADMIN=qwerty" "/ADMIN=" $R0
-\c ;$R0=qwerty
+\c ${GetOptions} "/S /T" "/T" $R0
+\c
+\c IfErrors 0 +2
+\c MessageBox MB_OK "Not found" IDOK +2
+\c MessageBox MB_OK "Found"
\c SectionEnd
\\Example2:\\
@@ -737,7 +744,11 @@ Call functions:
\c ;$R0="C:/Program Files/Common Files"
\c SectionEnd
-\S1{} GetRoot
+\S1{getoptionss} GetOptionsS
+
+\b Same as \R{getoptions}{GetOptions}, but case sensitive.
+
+\S1{getroot} GetRoot
\b Get root directory.
@@ -759,7 +770,7 @@ Call functions:
\c ; $R0="\\SuperPimp\NSIS"
\c SectionEnd
-\S1{} GetParent
+\S1{headers_getparent} GetParent
\b Get parent directory.
@@ -774,7 +785,7 @@ Call functions:
\c ; $R0="C:\Program Files\Winamp"
\c SectionEnd
-\S1{} GetFileName
+\S1{getfilename} GetFileName
\b Get last part from directory path.
@@ -789,7 +800,7 @@ Call functions:
\c ; $R0="uninstwa.exe"
\c SectionEnd
-\S1{} GetBaseName
+\S1{getbasename} GetBaseName
\b Get file name without extension.
@@ -804,7 +815,7 @@ Call functions:
\c ; $R0="program"
\c SectionEnd
-\S1{} GetFileExt
+\S1{getfileext} GetFileExt
\b Get extention of file.
@@ -819,7 +830,7 @@ Call functions:
\c ; $R0="exe"
\c SectionEnd
-\S1{} BannerTrimPath
+\S1{bannertrimpath} BannerTrimPath
\b Trim string path for banner.
@@ -882,7 +893,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\\Example (\W{http://nsis.sourceforge.net/Banner_with_Cancel_button}{NxS} plugin):\\
+\\Example (\W{http://nsis.sourceforge.net/Nxs_plug-in}{NxS plugin}):\\
\c !include "FileFunc.nsh"
\c !insertmacro Locate
@@ -914,7 +925,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} DirState
+\S1{dirstate} DirState
\b Check directory full, empty or not exist.
@@ -935,7 +946,7 @@ Call functions:
\c ; $R0="1" directory is full
\c SectionEnd
-\S1{} RefreshShellIcons
+\S1{refreshshellicons} RefreshShellIcons
\b After changing file associations, you can call this function to refresh the shell immediately.
@@ -981,7 +992,7 @@ Call functions:
\c SectionEnd
-\S1{} LineFind
+\S1{linefind} LineFind
\b Find specified lines in text file, and edit or view these lines in callback function.
@@ -1025,10 +1036,10 @@ Call functions:
\c FunctionEnd
\\Note:\\
-\\
-Error flag if input file isn't exists
-\\
-Error flag if output file path isn't exists
-\\
-Ranges must be specified on growth (2 4:5 9:-8 -5:-4 -2:-1)
-\\
-Output file will not be updated if no changes made.
+\\
- Error flag if input file doesn't exist
+\\
- Error flag if output file path doesn't exist
+\\
- Ranges must be specified on growth (2 4:5 9:-8 -5:-4 -2:-1)
+\\
- Output file will not be updated if no changes made.
\\Example1 (delete first two symbols):\\
@@ -1182,7 +1193,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} LineRead
+\S1{lineread} LineRead
\b Get line in file specified with number.
@@ -1199,8 +1210,8 @@ Call functions:
\c $var ; Result: Line
\\Note:\\
-\\
-Error flag if input file isn't exists
-\\
-Error flag if line number not found
+\\
- Error flag if input file doesn't exist
+\\
- Error flag if line number not found
\\Example:\\
@@ -1209,7 +1220,7 @@ Call functions:
\c ; $R0="Last line$\r$\n"
\c SectionEnd
-\S1{} FileReadFromEnd
+\S1{filereadfromend} FileReadFromEnd
\b Read text file from end line by line.
@@ -1232,7 +1243,7 @@ Call functions:
\c FunctionEnd
\\Note:\\
-\\
-Error flag if input file isn't exists
+\\
- Error flag if input file doesn't exist
\\Example1:\\
@@ -1275,7 +1286,7 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} LineSum
+\S1{linesum} LineSum
\b Get sum of lines in text file.
@@ -1287,7 +1298,7 @@ Call functions:
\c $var ; Result: Sum of lines
\\Note:\\
-\\
-Error flag if input file isn't exists
+\\
- Error flag if input file doesn't exist
\\Example:\\
@@ -1296,7 +1307,7 @@ Call functions:
\c ; $R0="54"
\c SectionEnd
-\S1{} FileJoin
+\S1{filejoin} FileJoin
\b Join two files in one (File1 + File2 = File3).
@@ -1310,8 +1321,8 @@ Call functions:
\c ; If [File3]="" Then add [File2] to [File1]
\\Note:\\
-\\
-Error flag if input files aren't exists
-\\
-Error flag if output file path isn't exists
+\\
- Error flag if input files don't exist
+\\
- Error flag if output file path doesn't exist
\\Example1 (Join: a.log + b.log = Z.log):\\
@@ -1325,7 +1336,7 @@ Call functions:
\c ${FileJoin} "C:\a.log" "C:\logs\b.log" "C:\a.log"
\c SectionEnd
-\S1{} TextCompare
+\S1{textcompare} TextCompare
\b Compare two text files.
@@ -1360,8 +1371,8 @@ Call functions:
\c FunctionEnd
\\Note:\\
-\\
-Error flag if File1 or File2 isn't exist
-\\
-Error flag if syntax error
+\\
- Error flag if File1 or File2 doesn't exist
+\\
- Error flag if syntax error
\\Example (Different or Equal):\\
@@ -1496,7 +1507,11 @@ Call functions:
\c Push $0
\c FunctionEnd
-\S1{} ConfigRead
+\S1{textcompares} TextCompareS
+
+\b Same as \R{textcompare}{TextCompare}, but case sensitive.
+
+\S1{configread} ConfigRead
\b Read value from entry name in config file.
@@ -1511,7 +1526,8 @@ Call functions:
\c $var ; Result: Value
\\Note:\\
-\\
-Error flag if file isn't exist
+\\
- Error flag if entry not found
+\\
- Error flag if file doesn't exist
\\Example1:\\
@@ -1527,7 +1543,11 @@ Call functions:
\c ;$R0=30
\c SectionEnd
-\S1{} ConfigWrite
+\S1{configreads} ConfigReadS
+
+\b Same as \R{configread}{ConfigRead}, but case sensitive.
+
+\S1{configwrite} ConfigWrite
\b Write value from entry name in config file.
@@ -1549,8 +1569,8 @@ Call functions:
\c ; $var=SAME Entry and Value already exist
\\Note:\\
-\\
-Error flag if file isn't exist
-\\
-Error flag if file can't be opened
+\\
- Error flag if file doesn't exist
+\\
- Error flag if file can't be opened
\\Example1:\\
@@ -1573,7 +1593,11 @@ Call functions:
\c ;$R0=DELETED
\c SectionEnd
-\S1{} FileRecode
+\S1{configwrites} ConfigWriteS
+
+\b Same as \R{configwrite}{ConfigWrite}, but case sensitive.
+
+\S1{filerecode} FileRecode
\b Recode text file from DOS to Windows format and vice-versa.
@@ -1587,8 +1611,8 @@ Call functions:
\c ; CharToOem -from Windows to DOS
\\Note:\\
-\\
-Error flag if file isn't exist
-\\
-Error flag if syntax error
+\\
- Error flag if file doesn't exist
+\\
- Error flag if syntax error
\\Example:\\
@@ -1596,7 +1620,7 @@ Call functions:
\c ${FileRecode} "C:\SCANDISK.LOG" "CharToOem"
\c SectionEnd
-\S1{} TrimNewLines
+\S1{headers_trimnewlines} TrimNewLines
\b Trim newlines in a string.
@@ -1644,7 +1668,7 @@ Call functions:
\c SectionEnd
-\S1{} WordFind
+\S1{wordfind} WordFind
\b Multi-features string function.
@@ -1705,7 +1729,7 @@ Call functions:
\c $var ;output (result)
\\Note:\\
-\\
-Accepted numbers 1,01,001,...
+\\
- Accepted numbers 1,01,001,...
\\Example (Find word by number):\\
@@ -1867,7 +1891,11 @@ Call functions:
\c ; $R0="OneWord"
\c SectionEnd
-\S1{} WordFind2X
+\S1{wordfinds} WordFindS
+
+\b Same as \R{wordfind}{WordFind}, but case sensitive.
+
+\S1{wordfind2x} WordFind2X
\b Find word between two delimiters.
@@ -1975,7 +2003,11 @@ Call functions:
\c end:
\c SectionEnd
-\S1{} WordFind3X
+\S1{wordfind2xs} WordFind2XS
+
+\b Same as \R{wordfind2x}{WordFind2X}, but case sensitive.
+
+\S1{wordfind3x} WordFind3X
\b Find a word that contains a string, between two delimiters.
@@ -2079,7 +2111,11 @@ Call functions:
\c end:
\c SectionEnd
-\S1{} WordReplace
+\S1{wordfind3xs} WordFind3XS
+
+\b Same as \R{wordfind3x}{WordFind3X}, but case sensitive.
+
+\S1{wordreplace} WordReplace
\b Replace or delete word from string.
@@ -2098,17 +2134,25 @@ Call functions:
\c ; -number : word number from end
\c ; +number* : word number from start multiple-replace
\c ; -number* : word number from end multiple-replace
-\c ; + : replace or delete all found
-\c ; +* : multiple-replace all found
-\c ; {} : if exists replace or delete all delimiters
-\c ; from edges (no errorlevel output)
-\c ; {}* : if exists multiple-replace all delimiters
-\c ; from edges (no errorlevel output)
+\c ; + : replace all results
+\c ; +* : multiple-replace all results
+\c ; { : if exists replace all delimiters
+\c ; from left edge
+\c ; } : if exists replace all delimiters
+\c ; from right edge
+\c ; {} : if exists replace all delimiters
+\c ; from edges
+\c ; {* : if exists multiple-replace all
+\c ; delimiters from left edge
+\c ; }* : if exists multiple-replace all
+\c ; delimiters from right edge
+\c ; {}* : if exists multiple-replace all
+\c ; delimiters from edges
\c ;
\c ;[E]
\c ; with errorlevel output
\c ; IfErrors:
-\c ; $var=1 word to replace or delete not found
+\c ; $var=1 word to replace not found
\c ; $var=2 no such word number
\c ; $var=3 syntax error (Use: +1,-1,+1*,-1*,+,+*,{},{}*)
\c ;[]
@@ -2168,7 +2212,11 @@ Call functions:
\c end:
\c SectionEnd
-\S1{} WordAdd
+\S1{wordreplaces} WordReplaceS
+
+\b Same as \R{wordreplace}{WordReplace}, but case sensitive.
+
+\S1{wordadd} WordAdd
\b Add words to string1 from string2 if not exist or delete words if exist.
@@ -2254,7 +2302,11 @@ Call functions:
\c end:
\c SectionEnd
-\S1{} WordInsert
+\S1{wordadds} WordAddS
+
+\b Same as \R{wordadd}{WordAdd}, but case sensitive.
+
+\S1{wordinsert} WordInsert
\b Insert word in string.
@@ -2320,7 +2372,11 @@ Call functions:
\c end:
\c SectionEnd
-\S1{} StrFilter
+\S1{wordinserts} WordInsertS
+
+\b Same as \R{wordinsert}{WordInsert}, but case sensitive.
+
+\S1{strfilter} StrFilter
\b Convert string to uppercase or lowercase.
@@ -2354,8 +2410,8 @@ Call functions:
\c $var ;output (result)
\\Note:\\
-\\
-Error flag if syntax error
-\\
-Same symbol to include & to exclude = to exclude
+\\
- Error flag if syntax error
+\\
- Same symbol to include & to exclude = to exclude
\\Example (UpperCase):\\
@@ -2464,7 +2520,11 @@ Call functions:
\c Exch $R0
\c FunctionEnd
-\S1{} VersionCompare
+\S1{strfilters} StrFilterS
+
+\b Same as \R{strfilter}{StrFilter}, but case sensitive.
+
+\S1{versioncompare} VersionCompare
\b Compare version numbers.
@@ -2486,7 +2546,7 @@ Call functions:
\c ; $R0="1"
\c SectionEnd
-\S1{} VersionConvert
+\S1{versionconvert} VersionConvert
\b Convert version in the numerical format which can be compared.
@@ -2502,8 +2562,8 @@ Call functions:
\c $var ; Result: converted version
\\Note:\\
-\\
-Converted letters are separated with dot
-\\
-If character is non-digit and not in list then it will be converted to dot
+\\
- Converted letters are separated with dot
+\\
- If character is non-digit and not in list then it will be converted to dot
\\Example1:\\
diff --git a/Examples/FileFunc.nsi b/Examples/FileFunc.nsi
index cab7e113..0f59e744 100644
--- a/Examples/FileFunc.nsi
+++ b/Examples/FileFunc.nsi
@@ -3,7 +3,7 @@
; File Functions
;_____________________________________________________________________________
;
-; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
Name "File Functions"
OutFile "FileFunc.exe"
@@ -670,6 +670,7 @@ Function LeaveCustom
GetOptions:
${GetOptions} "$R1" "$R3" $0
+ IfErrors error
StrCpy $R0 '$0'
goto send
diff --git a/Examples/FileFuncTest.nsi b/Examples/FileFuncTest.nsi
index ca1da81e..5e96fa14 100644
--- a/Examples/FileFuncTest.nsi
+++ b/Examples/FileFuncTest.nsi
@@ -3,7 +3,7 @@
; File Functions Test
;_____________________________________________________________________________
;
-; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
Name "File Functions Test"
OutFile "FileFuncTest.exe"
@@ -33,6 +33,7 @@ Var OUT7
!insertmacro GetExePath
!insertmacro GetParameters
!insertmacro GetOptions
+!insertmacro GetOptionsS
!insertmacro GetRoot
!insertmacro GetParent
!insertmacro GetFileName
@@ -53,6 +54,7 @@ Var OUT7
!insertmacro un.GetExePath
!insertmacro un.GetParameters
!insertmacro un.GetOptions
+!insertmacro un.GetOptionsS
!insertmacro un.GetRoot
!insertmacro un.GetParent
!insertmacro un.GetFileName
@@ -281,9 +283,38 @@ Section GetOptions
StrCmp $OUT1 '"C:/Program Files/Common Files"' 0 error
${GetOptions} `/INSTDIR='"C:/Program Files/Common Files"' /SILENT=yes` '/INSTDIR*=' $OUT1
+ IfErrors 0 error
StrCmp $OUT1 '' 0 error
${GetOptions} `/INSTDIR="C:/Program Files/Common Files" /SILENT=yes` '' $OUT1
+ IfErrors 0 error
+ StrCmp $OUT1 '' 0 error
+
+ ${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT' '/SILENT' $OUT1
+ IfErrors error
+ StrCmp $OUT1 '' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
+Section GetOptionsS
+ ${StackVerificationStart} GetOptionsS
+
+ ${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
+ IfErrors error
+ StrCmp $OUT1 'C:\Program Files\Common Files' 0 error
+
+ ${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/Instdir=' $OUT1
+ IfErrors 0 error
+ StrCmp $OUT1 '' 0 error
+
+ ${GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT' '/SILENT' $OUT1
+ IfErrors error
StrCmp $OUT1 '' 0 error
goto +2
@@ -510,6 +541,7 @@ Section un.Uninstall
${un.GetExePath} $OUT1
${un.GetParameters} $OUT1
${un.GetOptions} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
+ ${un.GetOptionsS} '/INSTDIR=C:\Program Files\Common Files /SILENT=yes' '/INSTDIR=' $OUT1
${un.GetRoot} 'C:\Program Files\NSIS' $OUT1
${un.GetParent} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
${un.GetFileName} 'C:\Program Files\Winamp\uninstwa.exe' $OUT1
diff --git a/Examples/TextFunc.nsi b/Examples/TextFunc.nsi
index bf2cbfd7..81526258 100644
--- a/Examples/TextFunc.nsi
+++ b/Examples/TextFunc.nsi
@@ -3,7 +3,7 @@
; Text Functions
;_____________________________________________________________________________
;
-; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
Name "Text Functions"
OutFile "TextFunc.exe"
@@ -142,12 +142,19 @@ Function LeaveCustom
goto +2
FileWrite $0 '!include "WordFunc.nsh"$\r$\n'
FileWrite $0 '!insertmacro WordFind$\r$\n'
+ FileWrite $0 '!insertmacro WordFindS$\r$\n'
FileWrite $0 '!insertmacro WordFind2X$\r$\n'
+ FileWrite $0 '!insertmacro WordFind2XS$\r$\n'
FileWrite $0 '!insertmacro WordFind3X$\r$\n'
+ FileWrite $0 '!insertmacro WordFind3XS$\r$\n'
FileWrite $0 '!insertmacro WordReplace$\r$\n'
+ FileWrite $0 '!insertmacro WordReplaceS$\r$\n'
FileWrite $0 '!insertmacro WordAdd$\r$\n'
+ FileWrite $0 '!insertmacro WordAddS$\r$\n'
FileWrite $0 '!insertmacro WordInsert$\r$\n'
+ FileWrite $0 '!insertmacro WordInsertS$\r$\n'
FileWrite $0 '!insertmacro StrFilter$\r$\n'
+ FileWrite $0 '!insertmacro StrFilterS$\r$\n'
TextFuncInclude:
IfFileExists '$EXEDIR\TextFunc.nsh' 0 +3
FileWrite $0 '!include "$EXEDIR\TextFunc.nsh"$\r$\n'
@@ -257,9 +264,11 @@ Function LeaveCustom
FileWrite $0 " FileWrite $$R4 '---Second Line ...---$$\$8$$\$9'$\r$\n$\r$\n"
goto endwrite
Example5LF:
- FileWrite $0 " ; Use any of WordFunctions:$\r$\n"
- FileWrite $0 " ; $7WordFind}|$7WordFind2X}|$7WordFind3X}|$\r$\n"
- FileWrite $0 " ; $7WordReplace}|$7WordAdd}|$7WordInsert}|$7StrFilter}$\r$\n$\r$\n"
+ FileWrite $0 " ; You can use:$\r$\n"
+ FileWrite $0 " ; $7WordFind}|$7WordFindS}|$7WordFind2X}|$7WordFind2XS}|$\r$\n"
+ FileWrite $0 " ; $7WordFind3X}|$7WordFind3XS}|$7WordReplace}|$7WordReplaceS}|$\r$\n"
+ FileWrite $0 " ; $7WordAdd}|$7WordAddS}|$7WordInsert}|$7WordInsertS}|$\r$\n"
+ FileWrite $0 " ; $7StrFilter}|$7StrFilterS}$\r$\n$\r$\n"
FileWrite $0 " $7WordReplace} '$$R9' ' ' '_' '+*' $$R9$\r$\n$\r$\n"
goto endwrite
Example6LF:
diff --git a/Examples/TextFuncTest.nsi b/Examples/TextFuncTest.nsi
index 35809e68..fa6ae95a 100644
--- a/Examples/TextFuncTest.nsi
+++ b/Examples/TextFuncTest.nsi
@@ -3,7 +3,7 @@
; Text Functions Test
;_____________________________________________________________________________
;
-; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
Name "Text Functions Test"
OutFile "TextFuncTest.exe"
@@ -26,8 +26,11 @@ Var OUT
!insertmacro LineSum
!insertmacro FileJoin
!insertmacro TextCompare
+!insertmacro TextCompareS
!insertmacro ConfigRead
+!insertmacro ConfigReadS
!insertmacro ConfigWrite
+!insertmacro ConfigWriteS
!insertmacro FileRecode
!insertmacro TrimNewLines
@@ -37,8 +40,11 @@ Var OUT
!insertmacro un.LineSum
!insertmacro un.FileJoin
!insertmacro un.TextCompare
+!insertmacro un.TextCompareS
!insertmacro un.ConfigRead
+!insertmacro un.ConfigReadS
!insertmacro un.ConfigWrite
+!insertmacro un.ConfigWriteS
!insertmacro un.FileRecode
!insertmacro un.TrimNewLines
@@ -120,16 +126,16 @@ FunctionEnd
Section CreateTestFile
- GetTempFileName $TEMPFILE1 $PLUGINSDIR
+ GetTempFileName $TEMPFILE1
FileOpen $HANDLE $TEMPFILE1 w
- FileWrite $HANDLE '1=a$\r$\n'
- FileWrite $HANDLE '2=b$\r$\n'
- FileWrite $HANDLE '3=c$\r$\n'
- FileWrite $HANDLE '4=d$\r$\n'
- FileWrite $HANDLE '5=e$\r$\n'
+ FileWrite $HANDLE '1A=a$\r$\n'
+ FileWrite $HANDLE '2B=b$\r$\n'
+ FileWrite $HANDLE '3C=c$\r$\n'
+ FileWrite $HANDLE '4D=d$\r$\n'
+ FileWrite $HANDLE '5E=e$\r$\n'
FileClose $HANDLE
- GetTempFileName $TEMPFILE2 $PLUGINSDIR
- GetTempFileName $TEMPFILE3 $PLUGINSDIR
+ GetTempFileName $TEMPFILE2
+ GetTempFileName $TEMPFILE3
SectionEnd
@@ -138,14 +144,14 @@ Section LineFind
${LineFind} '$TEMPFILE1' '/NUL' '1:-4 3 -1' 'LineFindCallback1'
IfErrors error
- StrCmp $OUT '|1:2|-5|1|1=a$\r$\n|1:2|-4|2|2=b$\r$\n|3:3|-3|3|3=c$\r$\n' 0 error
+ StrCmp $OUT '|1:2|-5|1|1A=a$\r$\n|1:2|-4|2|2B=b$\r$\n|3:3|-3|3|3C=c$\r$\n' 0 error
StrCpy $OUT ''
SetDetailsPrint none
${LineFind} '$TEMPFILE1' '$TEMPFILE2' '1:-1' 'LineFindCallback2'
SetDetailsPrint both
IfErrors error
- StrCmp $OUT '|1:-1||1|1=a$\r$\n|1:-1||2|4=d$\r$\n|1:-1||3|3=c$\r$\n|1:-1||4|2=x$\r$\n|1:-1||5|5=e$\r$\n' 0 error
+ StrCmp $OUT '|1:-1||1|1A=a$\r$\n|1:-1||2|4D=d$\r$\n|1:-1||3|3C=c$\r$\n|1:-1||4|2B=B$\r$\n|1:-1||5|5E=e$\r$\n' 0 error
goto +2
error:
@@ -164,9 +170,9 @@ FunctionEnd
Function LineFindCallback2
StrCmp $R8 2 0 +2
- StrCpy $R9 '4=d$\r$\n'
+ StrCpy $R9 '4D=d$\r$\n'
StrCmp $R8 4 0 +2
- StrCpy $R9 '2=x$\r$\n'
+ StrCpy $R9 '2B=B$\r$\n'
StrCpy $OUT '$OUT|$R6|$R7|$R8|$R9'
@@ -179,7 +185,7 @@ Section LineRead
${LineRead} '$TEMPFILE1' '-1' $OUT
IfErrors error
- StrCmp $OUT '5=e$\r$\n' 0 error
+ StrCmp $OUT '5E=e$\r$\n' 0 error
goto +2
error:
@@ -195,7 +201,7 @@ Section FileReadFromEnd
StrCpy $OUT ''
${FileReadFromEnd} '$TEMPFILE1' 'FileReadFromEndCallback'
IfErrors error
- StrCmp $OUT '|-1|5|5=e$\r$\n|-2|4|4=d$\r$\n|-3|3|3=c$\r$\n|-4|2|2=b$\r$\n' 0 error
+ StrCmp $OUT '|-1|5|5E=e$\r$\n|-2|4|4D=d$\r$\n|-3|3|3C=c$\r$\n|-4|2|2B=b$\r$\n' 0 error
goto +2
error:
@@ -244,19 +250,37 @@ Section TextCompare
StrCpy $OUT ''
${TextCompare} '$TEMPFILE1' '$TEMPFILE2' 'FastDiff' 'TextCompareCallback'
- StrCmp $OUT '|2|4=d$\r$\n|2|2=b$\r$\n|4|2=x$\r$\n|4|4=d$\r$\n' 0 error
+ StrCmp $OUT '|2|4D=d$\r$\n|2|2B=b$\r$\n|4|2B=B$\r$\n|4|4D=d$\r$\n' 0 error
StrCpy $OUT ''
${TextCompare} '$TEMPFILE1' '$TEMPFILE2' 'FastEqual' 'TextCompareCallback'
- StrCmp $OUT '|1|1=a$\r$\n|1|1=a$\r$\n|3|3=c$\r$\n|3|3=c$\r$\n|5|5=e$\r$\n|5|5=e$\r$\n' 0 error
+ StrCmp $OUT '|1|1A=a$\r$\n|1|1A=a$\r$\n|3|3C=c$\r$\n|3|3C=c$\r$\n|5|5E=e$\r$\n|5|5E=e$\r$\n' 0 error
StrCpy $OUT ''
${TextCompare} '$TEMPFILE1' '$TEMPFILE2' 'SlowDiff' 'TextCompareCallback'
- StrCmp $OUT '|||2|2=b$\r$\n' 0 error
+ StrCmp $OUT '' 0 error
StrCpy $OUT ''
${TextCompare} '$TEMPFILE1' '$TEMPFILE2' 'SlowEqual' 'TextCompareCallback'
- StrCmp $OUT '|1|1=a$\r$\n|1|1=a$\r$\n|3|3=c$\r$\n|3|3=c$\r$\n|2|4=d$\r$\n|4|4=d$\r$\n|5|5=e$\r$\n|5|5=e$\r$\n' 0 error
+ StrCmp $OUT '|1|1A=a$\r$\n|1|1A=a$\r$\n|4|2B=B$\r$\n|2|2B=b$\r$\n|3|3C=c$\r$\n|3|3C=c$\r$\n|2|4D=d$\r$\n|4|4D=d$\r$\n|5|5E=e$\r$\n|5|5E=e$\r$\n' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+Section TextCompareS
+ ${StackVerificationStart} TextCompareS
+
+ StrCpy $OUT ''
+ ${TextCompareS} '$TEMPFILE1' '$TEMPFILE2' 'SlowDiff' 'TextCompareCallback'
+ StrCmp $OUT '|||2|2B=b$\r$\n' 0 error
+
+ StrCpy $OUT ''
+ ${TextCompareS} '$TEMPFILE1' '$TEMPFILE2' 'SlowEqual' 'TextCompareCallback'
+ StrCmp $OUT '|1|1A=a$\r$\n|1|1A=a$\r$\n|3|3C=c$\r$\n|3|3C=c$\r$\n|2|4D=d$\r$\n|4|4D=d$\r$\n|5|5E=e$\r$\n|5|5E=e$\r$\n' 0 error
goto +2
error:
@@ -275,10 +299,31 @@ FunctionEnd
Section ConfigRead
${StackVerificationStart} ConfigRead
- ${ConfigRead} '$TEMPFILE1' '3=' $OUT
+ ${ConfigRead} '$TEMPFILE1' '3c=' $OUT
StrCmp $OUT 'c' 0 error
- ${ConfigRead} '$TEMPFILE1' '6=' $OUT
+ ${ConfigRead} '$TEMPFILE1' '6F=' $OUT
+ StrCmp $OUT '' 0 error
+
+ ${ConfigRead} '$TEMPFILE1' 'FF=' $OUT
+ IfErrors 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
+Section ConfigReadS
+ ${StackVerificationStart} ConfigReadS
+
+ ${ConfigReadS} '$TEMPFILE1' '3C=' $OUT
+ StrCmp $OUT 'c' 0 error
+
+ ${ConfigReadS} '$TEMPFILE1' '3c=' $OUT
+ IfErrors 0 error
StrCmp $OUT '' 0 error
goto +2
@@ -292,16 +337,30 @@ SectionEnd
Section ConfigWrite
${StackVerificationStart} ConfigWrite
- ${ConfigWrite} '$TEMPFILE1' '5=' 'e**' $OUT
+ ${ConfigWrite} '$TEMPFILE1' '5E=' 'e**' $OUT
StrCmp $OUT 'CHANGED' 0 error
- ${ConfigWrite} '$TEMPFILE1' '2=' '' $OUT
+ ${ConfigWrite} '$TEMPFILE1' '2B=' '' $OUT
StrCmp $OUT 'DELETED' 0 error
- ${ConfigWrite} '$TEMPFILE1' '3=' 'c' $OUT
+ ${ConfigWrite} '$TEMPFILE1' '3c=' 'c' $OUT
StrCmp $OUT 'SAME' 0 error
- ${ConfigWrite} '$TEMPFILE1' '6=' '*' $OUT
+ ${ConfigWrite} '$TEMPFILE1' '6F=' '*' $OUT
+ StrCmp $OUT 'ADDED' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
+Section ConfigWriteS
+ ${StackVerificationStart} ConfigWriteS
+
+ ${ConfigWriteS} '$TEMPFILE1' '5e=' 'e**' $OUT
StrCmp $OUT 'ADDED' 0 error
goto +2
@@ -342,15 +401,16 @@ SectionEnd
Section WriteUninstaller
+ SetDetailsPrint none
+ Delete $TEMPFILE1
+ Delete $TEMPFILE2
+ Delete $TEMPFILE3
+ SetDetailsPrint both
goto +2
WriteUninstaller '$EXEDIR\un.TextFuncTest.exe'
SectionEnd
-Function .onInit
- InitPluginsDir
-FunctionEnd
-
;############### UNINSTALL ###############
@@ -361,8 +421,11 @@ Section un.Uninstall
${un.LineSum} '$TEMPFILE1' $OUT
${un.FileJoin} '$TEMPFILE1' '$TEMPFILE2' '$TEMPFILE3'
${un.TextCompare} '$TEMPFILE1' '$TEMPFILE2' 'FastDiff' 'un.TextCompareCallback'
- ${un.ConfigRead} '$TEMPFILE1' '3=' $OUT
- ${un.ConfigWrite} '$TEMPFILE1' '5=' 'e**' $OUT
+ ${un.TextCompareS} '$TEMPFILE1' '$TEMPFILE2' 'FastDiff' 'un.TextCompareCallback'
+ ${un.ConfigRead} '$TEMPFILE1' '3c=' $OUT
+ ${un.ConfigReadS} '$TEMPFILE1' '3c=' $OUT
+ ${un.ConfigWrite} '$TEMPFILE1' '5E=' 'e**' $OUT
+ ${un.ConfigWriteS} '$TEMPFILE1' '5E=' 'e**' $OUT
${un.FileRecode} '$TEMPFILE1' 'CharToOem'
${un.TrimNewLines} 'Text Line$\r$\n' $OUT
SectionEnd
diff --git a/Examples/WordFuncTest.nsi b/Examples/WordFuncTest.nsi
index f8c13bef..4dbe1e67 100644
--- a/Examples/WordFuncTest.nsi
+++ b/Examples/WordFuncTest.nsi
@@ -3,7 +3,7 @@
; Word Functions Test
;_____________________________________________________________________________
;
-; 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+; 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
Name "Word Functions Test"
OutFile "WordFuncTest.exe"
@@ -17,22 +17,36 @@ Var OUT
!include "WordFunc.nsh"
!insertmacro WordFind
+!insertmacro WordFindS
!insertmacro WordFind2X
+!insertmacro WordFind2XS
!insertmacro WordFind3X
+!insertmacro WordFind3XS
!insertmacro WordReplace
+!insertmacro WordReplaceS
!insertmacro WordAdd
+!insertmacro WordAddS
!insertmacro WordInsert
+!insertmacro WordInsertS
!insertmacro StrFilter
+!insertmacro StrFilterS
!insertmacro VersionCompare
!insertmacro VersionConvert
!insertmacro un.WordFind
+!insertmacro un.WordFindS
!insertmacro un.WordFind2X
+!insertmacro un.WordFind2XS
!insertmacro un.WordFind3X
+!insertmacro un.WordFind3XS
!insertmacro un.WordReplace
+!insertmacro un.WordReplaceS
!insertmacro un.WordAdd
+!insertmacro un.WordAddS
!insertmacro un.WordInsert
+!insertmacro un.WordInsertS
!insertmacro un.StrFilter
+!insertmacro un.StrFilterS
!insertmacro un.VersionCompare
!insertmacro un.VersionConvert
@@ -175,6 +189,23 @@ Section WordFind
SectionEnd
+Section WordFindS
+ ${StackVerificationStart} WordFindS
+
+ ${WordFindS} 'C:\io.sys|||Program Files|||WINDOWS' '||' '/|PROGRAM FILES' $OUT
+ StrCmp $OUT 'C:\io.sys|||Program Files|||WINDOWS' 0 error
+
+ ${WordFindS} 'C:\io.sys|||Program Files|||WINDOWS' '||' '/|Program Files' $OUT
+ StrCmp $OUT '2' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section WordFind2X
${StackVerificationStart} WordFind2X
@@ -219,6 +250,23 @@ Section WordFind2X
SectionEnd
+Section WordFind2XS
+ ${StackVerificationStart} WordFind2XS
+
+ ${WordFind2XS} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '/LOGO' $OUT
+ StrCmp $OUT 'C:\WINDOWS C:\io.sys C:\logo.sys' 0 error
+
+ ${WordFind2XS} 'C:\WINDOWS C:\io.sys C:\logo.sys' '\' '.' '/logo' $OUT
+ StrCmp $OUT '2' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section WordFind3X
${StackVerificationStart} WordFind3X
@@ -260,6 +308,23 @@ Section WordFind3X
SectionEnd
+Section WordFind3XS
+ ${StackVerificationStart} WordFind3XS
+
+ ${WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '/2.baa' $OUT
+ StrCmp $OUT '[1.AAB];[2.BAA];[3.BBB];' 0 error
+
+ ${WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '/2.BAA' $OUT
+ StrCmp $OUT '2' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section WordReplace
${StackVerificationStart} WordReplace
@@ -301,6 +366,23 @@ Section WordReplace
SectionEnd
+Section WordReplaceS
+ ${StackVerificationStart} WordReplaceS
+
+ ${WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
+ StrCmp $OUT 'C:\io.sys C:\logo.sys C:\WINDOWS' 0 error
+
+ ${WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'sys' 'bmp' '+2' $OUT
+ StrCmp $OUT 'C:\io.sys C:\logo.bmp C:\WINDOWS' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section WordAdd
${StackVerificationStart} WordAdd
@@ -339,6 +421,23 @@ Section WordAdd
SectionEnd
+Section WordAddS
+ ${StackVerificationStart} WordAddS
+
+ ${WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\windows C:\config.sys' $OUT
+ StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\windows C:\config.sys' 0 error
+
+ ${WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
+ StrCmp $OUT 'C:\io.sys C:\WINDOWS C:\config.sys' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section WordInsert
${StackVerificationStart} WordInsert
@@ -371,6 +470,23 @@ Section WordInsert
SectionEnd
+Section WordInsertS
+ ${StackVerificationStart} WordInsertS
+
+ ${WordInsertS} 'C:\io.sys x C:\logo.sys' ' X ' 'C:\NTLDR' '+2' $OUT
+ StrCmp $OUT 'C:\io.sys x C:\logo.sys X C:\NTLDR' 0 error
+
+ ${WordInsertS} 'C:\io.sys x C:\logo.sys' ' x ' 'C:\NTLDR' '+2' $OUT
+ StrCmp $OUT 'C:\io.sys x C:\NTLDR x C:\logo.sys' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section StrFilter
${StackVerificationStart} StrFilter
@@ -409,6 +525,21 @@ Section StrFilter
SectionEnd
+Section StrFilterS
+ ${StackVerificationStart} StrFilterS
+
+ ${StrFilterS} '123abc 456DEF 7890|%#' '13' 'af' '4590' $OUT
+ IfErrors error
+ StrCmp $OUT '123a 6 78|%#' 0 error
+
+ goto +2
+ error:
+ SetErrors
+
+ ${StackVerificationEnd}
+SectionEnd
+
+
Section VersionCompare
${StackVerificationStart} VersionCompare
@@ -478,12 +609,19 @@ SectionEnd
Section un.Uninstall
${un.WordFind} 'C:\io.sys C:\Program Files C:\WINDOWS' ' C:\' '-02' $OUT
+ ${un.WordFindS} 'C:\io.sys C:\Program Files C:\WINDOWS' ' C:\' '-02' $OUT
${un.WordFind2X} '[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]' '[C:\' '];' '+2' $OUT
+ ${un.WordFind2XS} '[C:\io.sys];[C:\logo.sys];[C:\WINDOWS]' '[C:\' '];' '+2' $OUT
${un.WordFind3X} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '+1' $OUT
+ ${un.WordFind3XS} '[1.AAB];[2.BAA];[3.BBB];' '[' 'AA' '];' '+1' $OUT
${un.WordReplace} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
+ ${un.WordReplaceS} 'C:\io.sys C:\logo.sys C:\WINDOWS' 'SYS' 'bmp' '+2' $OUT
${un.WordAdd} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
+ ${un.WordAddS} 'C:\io.sys C:\WINDOWS' ' ' '+C:\WINDOWS C:\config.sys' $OUT
${un.WordInsert} 'C:\io.sys C:\WINDOWS' ' ' 'C:\logo.sys' '-2' $OUT
+ ${un.WordInsertS} 'C:\io.sys C:\WINDOWS' ' ' 'C:\logo.sys' '-2' $OUT
${un.StrFilter} '123abc 456DEF 7890|%#' '+' '' '' $OUT
+ ${un.StrFilterS} '123abc 456DEF 7890|%#' '+' '' '' $OUT
${un.VersionCompare} '1.1.1.9' '1.1.1.01' $OUT
${un.VersionConvert} '9.0a' '' $OUT
-SectionEnd
\ No newline at end of file
+SectionEnd
diff --git a/Include/FileFunc.nsh b/Include/FileFunc.nsh
index 62e39e69..8da16243 100644
--- a/Include/FileFunc.nsh
+++ b/Include/FileFunc.nsh
@@ -1,10 +1,10 @@
/*
_____________________________________________________________________________
- File Functions Header v2.9
+ File Functions Header v3.0
_____________________________________________________________________________
- 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+ 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
See documentation for more information about the following functions.
@@ -18,14 +18,14 @@ _____________________________________________________________________________
FileFunction=[Locate|GetSize|DriveSpace|GetDrives|GetTime|GetFileAttributes|
GetFileVersion|GetExeName|GetExePath|GetParameters|GetOptions|
- GetRoot|GetParent|GetFileName|GetBaseName|GetFileExt|
+ GetOptionsS|GetRoot|GetParent|GetFileName|GetBaseName|GetFileExt|
BannerTrimPath|DirState|RefreshShellIcons]
un.FileFunction=[un.Locate|un.GetSize|un.DriveSpace|un.GetDrives|un.GetTime|
un.GetFileAttributes|un.GetFileVersion|un.GetExeName|
- un.GetExePath|un.GetParameters|un.GetOptions|un.GetRoot|
- un.GetParent|un.GetFileName|un.GetBaseName|un.GetFileExt|
- un.BannerTrimPath|un.DirState|un.RefreshShellIcons]
+ un.GetExePath|un.GetParameters|un.GetOptions|un.GetOptionsS|
+ un.GetRoot|un.GetParent|un.GetFileName|un.GetBaseName|
+ un.GetFileExt|un.BannerTrimPath|un.DirState|un.RefreshShellIcons]
_____________________________________________________________________________
@@ -61,7 +61,7 @@ RefreshShellIcons
;_____________________________________________________________________________
;
-; Macros
+; Macros
;_____________________________________________________________________________
;
; Change log window verbosity (default: 3=no script)
@@ -70,7 +70,7 @@ RefreshShellIcons
; !include "FileFunc.nsh"
; !insertmacro Locate
; ${FILEFUNC_VERBOSE} 4 # all verbosity
-; !insertmacro GetTime
+; !insertmacro VersionCompare
; ${FILEFUNC_VERBOSE} 3 # no script
!verbose push
@@ -81,6 +81,7 @@ RefreshShellIcons
!verbose ${_FILEFUNC_VERBOSE}
!define FILEFUNC_VERBOSE `!insertmacro FILEFUNC_VERBOSE`
!define _FILEFUNC_UN
+!define _FILEFUNC_S
!verbose pop
!macro FILEFUNC_VERBOSE _VERBOSE
@@ -88,12 +89,12 @@ RefreshShellIcons
!verbose 3
!undef _FILEFUNC_VERBOSE
!define _FILEFUNC_VERBOSE ${_VERBOSE}
- !verbose 4
- !echo `"verbosity=${_VERBOSE}"`
!verbose pop
!macroend
+# Install. Case insensitive. #
+
!macro LocateCall _PATH _OPTIONS _FUNC
!verbose push
!verbose ${_FILEFUNC_VERBOSE}
@@ -563,8 +564,6 @@ RefreshShellIcons
Pop $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -796,8 +795,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -913,8 +910,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1041,8 +1036,6 @@ RefreshShellIcons
Pop $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1178,8 +1171,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1327,8 +1318,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1372,8 +1361,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1397,8 +1384,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1422,8 +1407,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1467,19 +1450,17 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
!macro GetOptions
- !ifndef ${_FILEFUNC_UN}GetOptions
+ !ifndef ${_FILEFUNC_UN}GetOptions${_FILEFUNC_S}
!verbose push
!verbose ${_FILEFUNC_VERBOSE}
- !define ${_FILEFUNC_UN}GetOptions `!insertmacro ${_FILEFUNC_UN}GetOptionsCall`
+ !define ${_FILEFUNC_UN}GetOptions${_FILEFUNC_S} `!insertmacro ${_FILEFUNC_UN}GetOptions${_FILEFUNC_S}Call`
- Function ${_FILEFUNC_UN}GetOptions
+ Function ${_FILEFUNC_UN}GetOptions${_FILEFUNC_S}
Exch $1
Exch
Exch $0
@@ -1490,6 +1471,7 @@ RefreshShellIcons
Push $5
Push $6
Push $7
+ ClearErrors
StrCpy $2 $1 '' 1
StrCpy $1 $1 1
@@ -1503,44 +1485,44 @@ RefreshShellIcons
quote:
IntOp $4 $4 + 1
StrCpy $5 $0 1 $4
- StrCmp $5$7 '0' notfound
- StrCmp $5 '' trimright
- StrCmp $5 '"' 0 +7
- StrCmp $6 '' 0 +3
+ StrCmp${_FILEFUNC_S} $5$7 '0' notfound
+ StrCmp${_FILEFUNC_S} $5 '' trimright
+ StrCmp${_FILEFUNC_S} $5 '"' 0 +7
+ StrCmp${_FILEFUNC_S} $6 '' 0 +3
StrCpy $6 '"'
goto quote
- StrCmp $6 '"' 0 +3
+ StrCmp${_FILEFUNC_S} $6 '"' 0 +3
StrCpy $6 ''
goto quote
- StrCmp $5 `'` 0 +7
- StrCmp $6 `` 0 +3
+ StrCmp${_FILEFUNC_S} $5 `'` 0 +7
+ StrCmp${_FILEFUNC_S} $6 `` 0 +3
StrCpy $6 `'`
goto quote
- StrCmp $6 `'` 0 +3
+ StrCmp${_FILEFUNC_S} $6 `'` 0 +3
StrCpy $6 ``
goto quote
- StrCmp $5 '`' 0 +7
- StrCmp $6 '' 0 +3
+ StrCmp${_FILEFUNC_S} $5 '`' 0 +7
+ StrCmp${_FILEFUNC_S} $6 '' 0 +3
StrCpy $6 '`'
goto quote
- StrCmp $6 '`' 0 +3
+ StrCmp${_FILEFUNC_S} $6 '`' 0 +3
StrCpy $6 ''
goto quote
- StrCmp $6 '"' quote
- StrCmp $6 `'` quote
- StrCmp $6 '`' quote
- StrCmp $5 $1 0 quote
- StrCmp $7 0 trimleft trimright
+ StrCmp${_FILEFUNC_S} $6 '"' quote
+ StrCmp${_FILEFUNC_S} $6 `'` quote
+ StrCmp${_FILEFUNC_S} $6 '`' quote
+ StrCmp${_FILEFUNC_S} $5 $1 0 quote
+ StrCmp${_FILEFUNC_S} $7 0 trimleft trimright
trimleft:
IntOp $4 $4 + 1
StrCpy $5 $0 $3 $4
- StrCmp $5 '' notfound
- StrCmp $5 $2 0 quote
+ StrCmp${_FILEFUNC_S} $5 '' notfound
+ StrCmp${_FILEFUNC_S} $5 $2 0 quote
IntOp $4 $4 + $3
StrCpy $0 $0 '' $4
StrCpy $4 $0 1
- StrCmp $4 ' ' 0 +3
+ StrCmp${_FILEFUNC_S} $4 ' ' 0 +3
StrCpy $0 $0 '' 1
goto -3
StrCpy $7 1
@@ -1549,19 +1531,20 @@ RefreshShellIcons
trimright:
StrCpy $0 $0 $4
StrCpy $4 $0 1 -1
- StrCmp $4 ' ' 0 +3
+ StrCmp${_FILEFUNC_S} $4 ' ' 0 +3
StrCpy $0 $0 -1
goto -3
StrCpy $3 $0 1
StrCpy $4 $0 1 -1
- StrCmp $3 $4 0 end
- StrCmp $3 '"' +3
- StrCmp $3 `'` +2
- StrCmp $3 '`' 0 end
+ StrCmp${_FILEFUNC_S} $3 $4 0 end
+ StrCmp${_FILEFUNC_S} $3 '"' +3
+ StrCmp${_FILEFUNC_S} $3 `'` +2
+ StrCmp${_FILEFUNC_S} $3 '`' 0 end
StrCpy $0 $0 -1 1
goto end
notfound:
+ SetErrors
StrCpy $0 ''
end:
@@ -1575,8 +1558,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1628,8 +1609,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1662,8 +1641,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1698,8 +1675,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1747,8 +1722,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1787,8 +1760,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1882,8 +1853,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1918,8 +1887,6 @@ RefreshShellIcons
Exch $0
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -1934,12 +1901,13 @@ RefreshShellIcons
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v (0x08000000, 0, 0, 0)'
FunctionEnd
- !undef _FILEFUNC_UN
- !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
+
+# Uninstall. Case insensitive. #
+
!macro un.LocateCall _PATH _OPTIONS _FUNC
!verbose push
!verbose ${_FILEFUNC_VERBOSE}
@@ -2136,6 +2104,8 @@ RefreshShellIcons
!insertmacro Locate
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2149,6 +2119,8 @@ RefreshShellIcons
!insertmacro GetSize
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2162,6 +2134,8 @@ RefreshShellIcons
!insertmacro DriveSpace
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2175,6 +2149,8 @@ RefreshShellIcons
!insertmacro GetDrives
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2188,6 +2164,8 @@ RefreshShellIcons
!insertmacro GetTime
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2201,6 +2179,8 @@ RefreshShellIcons
!insertmacro GetFileAttributes
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2214,6 +2194,8 @@ RefreshShellIcons
!insertmacro GetFileVersion
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2227,6 +2209,8 @@ RefreshShellIcons
!insertmacro GetExeName
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2240,6 +2224,8 @@ RefreshShellIcons
!insertmacro GetExePath
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2253,6 +2239,8 @@ RefreshShellIcons
!insertmacro GetParameters
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2266,6 +2254,8 @@ RefreshShellIcons
!insertmacro GetOptions
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2279,6 +2269,8 @@ RefreshShellIcons
!insertmacro GetRoot
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2292,6 +2284,8 @@ RefreshShellIcons
!insertmacro GetParent
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2305,6 +2299,8 @@ RefreshShellIcons
!insertmacro GetFileName
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2318,6 +2314,8 @@ RefreshShellIcons
!insertmacro GetBaseName
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2331,6 +2329,8 @@ RefreshShellIcons
!insertmacro GetFileExt
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2344,6 +2344,8 @@ RefreshShellIcons
!insertmacro BannerTrimPath
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2357,6 +2359,8 @@ RefreshShellIcons
!insertmacro DirState
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
!verbose pop
!endif
!macroend
@@ -2370,6 +2374,68 @@ RefreshShellIcons
!insertmacro RefreshShellIcons
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
+ !verbose pop
+ !endif
+!macroend
+
+
+# Install. Case sensitive. #
+
+!macro GetOptionsSCall _PARAMETERS _OPTION _RESULT
+ !verbose push
+ !verbose ${_FILEFUNC_VERBOSE}
+ Push `${_PARAMETERS}`
+ Push `${_OPTION}`
+ Call GetOptionsS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro GetOptionsS
+ !ifndef GetOptionsS
+ !verbose push
+ !verbose ${_FILEFUNC_VERBOSE}
+ !undef _FILEFUNC_S
+ !define _FILEFUNC_S `S`
+
+ !insertmacro GetOptions
+
+ !undef _FILEFUNC_S
+ !define _FILEFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+
+# Uninstall. Case sensitive. #
+
+!macro un.GetOptionsSCall _PARAMETERS _OPTION _RESULT
+ !verbose push
+ !verbose ${_FILEFUNC_VERBOSE}
+ Push `${_PARAMETERS}`
+ Push `${_OPTION}`
+ Call un.GetOptionsS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.GetOptionsS
+ !ifndef un.GetOptionsS
+ !verbose push
+ !verbose ${_FILEFUNC_VERBOSE}
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN `un.`
+ !undef _FILEFUNC_S
+ !define _FILEFUNC_S `S`
+
+ !insertmacro GetOptions
+
+ !undef _FILEFUNC_UN
+ !define _FILEFUNC_UN
+ !undef _FILEFUNC_S
+ !define _FILEFUNC_S
!verbose pop
!endif
!macroend
diff --git a/Include/TextFunc.nsh b/Include/TextFunc.nsh
index e4155adc..64f78d4d 100644
--- a/Include/TextFunc.nsh
+++ b/Include/TextFunc.nsh
@@ -1,10 +1,10 @@
/*
_____________________________________________________________________________
- Text Functions Header v2.1
+ Text Functions Header v2.2
_____________________________________________________________________________
- 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+ 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
See documentation for more information about the following functions.
@@ -17,12 +17,13 @@ _____________________________________________________________________________
TextFunction=[LineFind|LineRead|FileReadFromEnd|LineSum|FileJoin|
- TextCompare|ConfigRead|ConfigWrite|FileRecode|TrimNewLines]
+ TextCompare|TextCompareS|ConfigRead|ConfigReadS|
+ ConfigWrite|ConfigWriteS|FileRecode|TrimNewLines]
un.TextFunction=[un.LineFind|un.LineRead|un.FileReadFromEnd|un.LineSum|
- un.FileJoin|un.TextCompare|un.ConfigRead|un.ConfigWrite|
- un.FileRecode|un.TrimNewLines]
-
+ un.FileJoin|un.TextCompare|un.TextCompareS|un.ConfigRead|
+ un.ConfigReadS|un.ConfigWrite|un.ConfigWriteS|un.FileRecode|
+ un.TrimNewLines]
_____________________________________________________________________________
@@ -66,6 +67,7 @@ TrimNewLines
!verbose ${_TEXTFUNC_VERBOSE}
!define TEXTFUNC_VERBOSE `!insertmacro TEXTFUNC_VERBOSE`
!define _TEXTFUNC_UN
+!define _TEXTFUNC_S
!verbose pop
!macro TEXTFUNC_VERBOSE _VERBOSE
@@ -73,12 +75,12 @@ TrimNewLines
!verbose 3
!undef _TEXTFUNC_VERBOSE
!define _TEXTFUNC_VERBOSE ${_VERBOSE}
- !verbose 4
- !echo `"verbosity=${_VERBOSE}"`
!verbose pop
!macroend
+# Install. Case insensitive. #
+
!macro LineFindCall _INPUT _OUTPUT _RANGE _FUNC
!verbose push
!verbose ${_TEXTFUNC_VERBOSE}
@@ -432,8 +434,6 @@ TrimNewLines
Pop $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -493,8 +493,6 @@ TrimNewLines
Exch $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -560,8 +558,6 @@ TrimNewLines
Pop $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -600,8 +596,6 @@ TrimNewLines
Exch $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -680,19 +674,17 @@ TrimNewLines
Pop $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
!macro TextCompare
- !ifndef ${_TEXTFUNC_UN}TextCompare
+ !ifndef ${_TEXTFUNC_UN}TextCompare${_TEXTFUNC_S}
!verbose push
!verbose ${_TEXTFUNC_VERBOSE}
- !define ${_TEXTFUNC_UN}TextCompare `!insertmacro ${_TEXTFUNC_UN}TextCompareCall`
+ !define ${_TEXTFUNC_UN}TextCompare${_TEXTFUNC_S} `!insertmacro ${_TEXTFUNC_UN}TextCompare${_TEXTFUNC_S}Call`
- Function ${_TEXTFUNC_UN}TextCompare
+ Function ${_TEXTFUNC_UN}TextCompare${_TEXTFUNC_S}
Exch $3
Exch
Exch $2
@@ -729,31 +721,31 @@ TrimNewLines
StrCpy $8 0
nextline:
- StrCmp $4 '' fast
+ StrCmp${_TEXTFUNC_S} $4 '' fast
IntOp $8 $8 + 1
FileRead $4 $9
IfErrors 0 +4
FileClose $4
StrCpy $4 ''
- StrCmp $5 '' end
+ StrCmp${_TEXTFUNC_S} $5 '' end
StrCmp $2 'FastDiff' fast
StrCmp $2 'FastEqual' fast slow
fast:
- StrCmp $5 '' call
+ StrCmp${_TEXTFUNC_S} $5 '' call
IntOp $6 $6 + 1
FileRead $5 $7
IfErrors 0 +5
FileClose $5
StrCpy $5 ''
- StrCmp $4 '' end
+ StrCmp${_TEXTFUNC_S} $4 '' end
StrCmp $2 'FastDiff' call close
StrCmp $2 'FastDiff' 0 +2
- StrCmp $7 $9 nextline call
- StrCmp $7 $9 call nextline
+ StrCmp${_TEXTFUNC_S} $7 $9 nextline call
+ StrCmp${_TEXTFUNC_S} $7 $9 call nextline
slow:
- StrCmp $4 '' close
+ StrCmp${_TEXTFUNC_S} $4 '' close
StrCpy $6 ''
DetailPrint '$8. $9'
FileSeek $5 0
@@ -763,9 +755,9 @@ TrimNewLines
IfErrors 0 +2
StrCmp $2 'SlowDiff' call nextline
StrCmp $2 'SlowDiff' 0 +2
- StrCmp $7 $9 nextline slownext
+ StrCmp${_TEXTFUNC_S} $7 $9 nextline slownext
IntOp $6 $6 + 1
- StrCmp $7 $9 0 slownext
+ StrCmp${_TEXTFUNC_S} $7 $9 0 slownext
call:
Push $2
@@ -810,19 +802,17 @@ TrimNewLines
Pop $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
!macro ConfigRead
- !ifndef ${_TEXTFUNC_UN}ConfigRead
+ !ifndef ${_TEXTFUNC_UN}ConfigRead${_TEXTFUNC_S}
!verbose push
!verbose ${_TEXTFUNC_VERBOSE}
- !define ${_TEXTFUNC_UN}ConfigRead `!insertmacro ${_TEXTFUNC_UN}ConfigReadCall`
+ !define ${_TEXTFUNC_UN}ConfigRead${_TEXTFUNC_S} `!insertmacro ${_TEXTFUNC_UN}ConfigRead${_TEXTFUNC_S}Call`
- Function ${_TEXTFUNC_UN}ConfigRead
+ Function ${_TEXTFUNC_UN}ConfigRead${_TEXTFUNC_S}
Exch $1
Exch
Exch $0
@@ -835,24 +825,22 @@ TrimNewLines
FileOpen $2 $0 r
IfErrors error
StrLen $0 $1
- StrCmp $0 0 error
+ StrCmp${_TEXTFUNC_S} $0 0 error
readnext:
FileRead $2 $3
- IfErrors empty
+ IfErrors error
StrCpy $4 $3 $0
- StrCmp $4 $1 0 readnext
+ StrCmp${_TEXTFUNC_S} $4 $1 0 readnext
StrCpy $0 $3 '' $0
StrCpy $4 $0 1 -1
- StrCmp $4 '$\r' +2
- StrCmp $4 '$\n' 0 close
+ StrCmp${_TEXTFUNC_S} $4 '$\r' +2
+ StrCmp${_TEXTFUNC_S} $4 '$\n' 0 close
StrCpy $0 $0 -1
goto -4
error:
SetErrors
-
- empty:
StrCpy $0 ''
close:
@@ -865,19 +853,17 @@ TrimNewLines
Exch $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
!macro ConfigWrite
- !ifndef ${_TEXTFUNC_UN}ConfigWrite
+ !ifndef ${_TEXTFUNC_UN}ConfigWrite${_TEXTFUNC_S}
!verbose push
!verbose ${_TEXTFUNC_VERBOSE}
- !define ${_TEXTFUNC_UN}ConfigWrite `!insertmacro ${_TEXTFUNC_UN}ConfigWriteCall`
+ !define ${_TEXTFUNC_UN}ConfigWrite${_TEXTFUNC_S} `!insertmacro ${_TEXTFUNC_UN}ConfigWrite${_TEXTFUNC_S}Call`
- Function ${_TEXTFUNC_UN}ConfigWrite
+ Function ${_TEXTFUNC_UN}ConfigWrite${_TEXTFUNC_S}
Exch $2
Exch
Exch $1
@@ -896,7 +882,7 @@ TrimNewLines
IfErrors error
StrLen $0 $1
- StrCmp $0 0 0 readnext
+ StrCmp${_TEXTFUNC_S} $0 0 0 readnext
StrCpy $0 ''
goto close
@@ -904,20 +890,20 @@ TrimNewLines
FileRead $3 $4
IfErrors add
StrCpy $5 $4 $0
- StrCmp $5 $1 0 readnext
+ StrCmp${_TEXTFUNC_S} $5 $1 0 readnext
StrCpy $5 0
IntOp $5 $5 - 1
StrCpy $6 $4 1 $5
- StrCmp $6 '$\r' -2
- StrCmp $6 '$\n' -3
+ StrCmp${_TEXTFUNC_S} $6 '$\r' -2
+ StrCmp${_TEXTFUNC_S} $6 '$\n' -3
StrCpy $6 $4
- StrCmp $5 -1 +3
+ StrCmp${_TEXTFUNC_S} $5 -1 +3
IntOp $5 $5 + 1
StrCpy $6 $4 $5
- StrCmp $2 '' change
- StrCmp $6 '$1$2' 0 change
+ StrCmp${_TEXTFUNC_S} $2 '' change
+ StrCmp${_TEXTFUNC_S} $6 '$1$2' 0 change
StrCpy $0 SAME
goto close
@@ -933,26 +919,26 @@ TrimNewLines
FileSeek $3 $5 SET
System::Call 'kernel32::ReadFile(i r3, i r0, i $6, t.,)'
FileSeek $3 $4 SET
- StrCmp $2 '' +2
+ StrCmp${_TEXTFUNC_S} $2 '' +2
FileWrite $3 '$1$2$\r$\n'
System::Call 'kernel32::WriteFile(i r3, i r0, i $6, t.,)'
System::Call 'kernel32::SetEndOfFile(i r3)'
System::Free $0
- StrCmp $2 '' +3
+ StrCmp${_TEXTFUNC_S} $2 '' +3
StrCpy $0 CHANGED
goto close
StrCpy $0 DELETED
goto close
add:
- StrCmp $2 '' 0 +3
+ StrCmp${_TEXTFUNC_S} $2 '' 0 +3
StrCpy $0 SAME
goto close
FileSeek $3 -1 END
FileRead $3 $4
IfErrors +4
- StrCmp $4 '$\r' +3
- StrCmp $4 '$\n' +2
+ StrCmp${_TEXTFUNC_S} $4 '$\r' +3
+ StrCmp${_TEXTFUNC_S} $4 '$\n' +2
FileWrite $3 '$\r$\n'
FileWrite $3 '$1$2$\r$\n'
StrCpy $0 ADDED
@@ -975,8 +961,6 @@ TrimNewLines
Exch $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1026,8 +1010,6 @@ TrimNewLines
Pop $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1057,12 +1039,13 @@ TrimNewLines
Exch $0
FunctionEnd
- !undef _TEXTFUNC_UN
- !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
+
+# Uninstall. Case insensitive. #
+
!macro un.LineFindCall _INPUT _OUTPUT _RANGE _FUNC
!verbose push
!verbose ${_TEXTFUNC_VERBOSE}
@@ -1180,6 +1163,8 @@ TrimNewLines
!insertmacro LineFind
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1193,6 +1178,8 @@ TrimNewLines
!insertmacro LineRead
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1206,6 +1193,8 @@ TrimNewLines
!insertmacro FileReadFromEnd
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1219,6 +1208,8 @@ TrimNewLines
!insertmacro LineSum
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1232,6 +1223,8 @@ TrimNewLines
!insertmacro FileJoin
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1245,6 +1238,8 @@ TrimNewLines
!insertmacro TextCompare
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1258,6 +1253,8 @@ TrimNewLines
!insertmacro ConfigRead
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1271,6 +1268,8 @@ TrimNewLines
!insertmacro ConfigWrite
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1284,6 +1283,8 @@ TrimNewLines
!insertmacro FileRecode
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
!verbose pop
!endif
!macroend
@@ -1297,6 +1298,186 @@ TrimNewLines
!insertmacro TrimNewLines
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
+ !verbose pop
+ !endif
+!macroend
+
+
+# Install. Case sensitive. #
+
+!macro TextCompareSCall _FILE1 _FILE2 _OPTION _FUNC
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push $0
+ Push `${_FILE1}`
+ Push `${_FILE2}`
+ Push `${_OPTION}`
+ GetFunctionAddress $0 `${_FUNC}`
+ Push `$0`
+ Call TextCompareS
+ Pop $0
+ !verbose pop
+!macroend
+
+!macro ConfigReadSCall _FILE _ENTRY _RESULT
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push `${_FILE}`
+ Push `${_ENTRY}`
+ Call ConfigReadS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro ConfigWriteSCall _FILE _ENTRY _VALUE _RESULT
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push `${_FILE}`
+ Push `${_ENTRY}`
+ Push `${_VALUE}`
+ Call ConfigWriteS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro TextCompareS
+ !ifndef TextCompareS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro TextCompare
+
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro ConfigReadS
+ !ifndef ConfigReadS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro ConfigRead
+
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro ConfigWriteS
+ !ifndef ConfigWriteS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro ConfigWrite
+
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+
+# Uninstall. Case sensitive. #
+
+!macro un.TextCompareSCall _FILE1 _FILE2 _OPTION _FUNC
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push $0
+ Push `${_FILE1}`
+ Push `${_FILE2}`
+ Push `${_OPTION}`
+ GetFunctionAddress $0 `${_FUNC}`
+ Push `$0`
+ Call un.TextCompareS
+ Pop $0
+ !verbose pop
+!macroend
+
+!macro un.ConfigReadSCall _FILE _ENTRY _RESULT
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push `${_FILE}`
+ Push `${_ENTRY}`
+ Call un.ConfigReadS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.ConfigWriteSCall _FILE _ENTRY _VALUE _RESULT
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ Push `${_FILE}`
+ Push `${_ENTRY}`
+ Push `${_VALUE}`
+ Call un.ConfigWriteS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.TextCompareS
+ !ifndef un.TextCompareS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN `un.`
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro TextCompare
+
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.ConfigReadS
+ !ifndef un.ConfigReadS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN `un.`
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro ConfigRead
+
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.ConfigWriteS
+ !ifndef un.ConfigWriteS
+ !verbose push
+ !verbose ${_TEXTFUNC_VERBOSE}
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN `un.`
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S `S`
+
+ !insertmacro ConfigWrite
+
+ !undef _TEXTFUNC_UN
+ !define _TEXTFUNC_UN
+ !undef _TEXTFUNC_S
+ !define _TEXTFUNC_S
!verbose pop
!endif
!macroend
diff --git a/Include/WordFunc.nsh b/Include/WordFunc.nsh
index a7b8500c..bd34f6f0 100644
--- a/Include/WordFunc.nsh
+++ b/Include/WordFunc.nsh
@@ -1,10 +1,10 @@
/*
_____________________________________________________________________________
- Word Functions Header v3.1
+ Word Functions Header v3.2
_____________________________________________________________________________
- 2005 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
+ 2006 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)
See documentation for more information about the following functions.
@@ -16,13 +16,14 @@ _____________________________________________________________________________
[SectionEnd|FunctionEnd]
- WordFunction=[WordFind|WordFind2X|WordFind3X|WordReplace|WordAdd|WordInsert|
- StrFilter|VersionCompare|VersionConvert]
-
- un.WordFunction=[un.WordFind|un.WordFind2X|un.WordFind3X|un.WordReplace|
- un.WordAdd|un.WordInsert|un.StrFilter|un.VersionCompare|
- un.VersionConvert]
+ WordFunction=[WordFind|WordFindS|WordFind2X|WordFind2XS|WordFind3X|WordFind3XS|
+ WordReplace|WordReplaceS|WordAdd|WordAddS|WordInsert|WordInsertS|
+ StrFilter|StrFilterS|VersionCompare|VersionConvert]
+ un.WordFunction=[un.WordFind|un.WordFindS|un.WordFind2X|un.WordFind2XS|
+ un.WordFind3X|un.WordFind3XS|un.WordReplace|un.WordReplaceS|
+ un.WordAdd|un.WordAddS|un.WordInsert|un.WordInsertS|
+ un.StrFilter|un.StrFilterS|un.VersionCompare|un.VersionConvert]
_____________________________________________________________________________
@@ -42,7 +43,7 @@ VersionConvert
;_____________________________________________________________________________
;
-; Macros
+; Macros
;_____________________________________________________________________________
;
; Change log window verbosity (default: 3=no script)
@@ -61,8 +62,8 @@ VersionConvert
!endif
!verbose ${_WORDFUNC_VERBOSE}
!define WORDFUNC_VERBOSE `!insertmacro WORDFUNC_VERBOSE`
-!define _WORDFUNC_UN1
-!define _WORDFUNC_UN2
+!define _WORDFUNC_UN
+!define _WORDFUNC_S
!verbose pop
!macro WORDFUNC_VERBOSE _VERBOSE
@@ -70,12 +71,12 @@ VersionConvert
!verbose 3
!undef _WORDFUNC_VERBOSE
!define _WORDFUNC_VERBOSE ${_VERBOSE}
- !verbose 4
- !echo `"verbosity=${_VERBOSE}"`
!verbose pop
!macroend
+# Install. Case insensitive. #
+
!macro WordFindCall _STRING _DELIMITER _OPTION _RESULT
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
@@ -180,12 +181,12 @@ VersionConvert
!macroend
!macro WordFind
- !ifndef ${_WORDFUNC_UN1}WordFind
+ !ifndef ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}WordFind `!insertmacro ${_WORDFUNC_UN1}WordFindCall`
+ !define ${_WORDFUNC_UN}WordFind${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordFind
+ Function ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
Exch $1
Exch
Exch $0
@@ -212,29 +213,29 @@ VersionConvert
goto -4
StrCpy $3 ''
- StrCmp $2 '+' +6
- StrCmp $2 '-' +5
- StrCmp $2 '/' restart
- StrCmp $2 '#' restart
- StrCmp $2 '*' restart
+ StrCmp${_WORDFUNC_S} $2 '+' +6
+ StrCmp${_WORDFUNC_S} $2 '-' +5
+ StrCmp${_WORDFUNC_S} $2 '/' restart
+ StrCmp${_WORDFUNC_S} $2 '#' restart
+ StrCmp${_WORDFUNC_S} $2 '*' restart
goto error3
StrCpy $4 $1 1 -1
- StrCmp $4 '*' +4
- StrCmp $4 '}' +3
- StrCmp $4 '{' +2
+ StrCmp${_WORDFUNC_S} $4 '*' +4
+ StrCmp${_WORDFUNC_S} $4 '}' +3
+ StrCmp${_WORDFUNC_S} $4 '{' +2
goto +4
StrCpy $1 $1 -1
StrCpy $3 '$4$3'
goto -7
- StrCmp $3 '*' error3
- StrCmp $3 '**' error3
- StrCmp $3 '}{' error3
+ StrCmp${_WORDFUNC_S} $3 '*' error3
+ StrCmp${_WORDFUNC_S} $3 '**' error3
+ StrCmp${_WORDFUNC_S} $3 '}{' error3
IntOp $1 $1 + 0
- StrCmp $1 0 error2
+ StrCmp${_WORDFUNC_S} $1 0 error2
restart:
- StrCmp $R0 '' error1
+ StrCmp${_WORDFUNC_S} $R0 '' error1
StrCpy $4 0
StrCpy $5 0
StrCpy $6 0
@@ -246,23 +247,23 @@ VersionConvert
loop:
StrCpy $8 $R0 $7 $6
- StrCmp $8$5 0 error1
- StrCmp $8 '' +2
- StrCmp $8 $0 +5 preloop
- StrCmp $3 '{' minus
- StrCmp $3 '}' minus
- StrCmp $2 '*' minus
- StrCmp $5 $6 minus +5
- StrCmp $3 '{' +4
- StrCmp $3 '}' +3
- StrCmp $2 '*' +2
- StrCmp $5 $6 nextword
+ StrCmp${_WORDFUNC_S} $8$5 0 error1
+ StrCmp${_WORDFUNC_S} $8 '' +2
+ StrCmp${_WORDFUNC_S} $8 $0 +5 preloop
+ StrCmp${_WORDFUNC_S} $3 '{' minus
+ StrCmp${_WORDFUNC_S} $3 '}' minus
+ StrCmp${_WORDFUNC_S} $2 '*' minus
+ StrCmp${_WORDFUNC_S} $5 $6 minus +5
+ StrCmp${_WORDFUNC_S} $3 '{' +4
+ StrCmp${_WORDFUNC_S} $3 '}' +3
+ StrCmp${_WORDFUNC_S} $2 '*' +2
+ StrCmp${_WORDFUNC_S} $5 $6 nextword
IntOp $4 $4 + 1
- StrCmp $2$4 +$1 plus
- StrCmp $2 '/' 0 nextword
+ StrCmp${_WORDFUNC_S} $2$4 +$1 plus
+ StrCmp${_WORDFUNC_S} $2 '/' 0 nextword
IntOp $8 $6 - $5
StrCpy $8 $R0 $8 $5
- StrCmp $1 $8 0 nextword
+ StrCmp${_WORDFUNC_S} $1 $8 0 nextword
StrCpy $R1 $4
goto end
nextword:
@@ -271,62 +272,62 @@ VersionConvert
goto loop
minus:
- StrCmp $2 '-' 0 sum
+ StrCmp${_WORDFUNC_S} $2 '-' 0 sum
StrCpy $2 '+'
IntOp $1 $4 - $1
IntOp $1 $1 + 1
IntCmp $1 0 error2 error2 restart
sum:
- StrCmp $2 '#' 0 sumdelim
+ StrCmp${_WORDFUNC_S} $2 '#' 0 sumdelim
StrCpy $R1 $4
goto end
sumdelim:
- StrCmp $2 '*' 0 error2
+ StrCmp${_WORDFUNC_S} $2 '*' 0 error2
StrCpy $R1 $4
goto end
plus:
- StrCmp $3 '' 0 +4
+ StrCmp${_WORDFUNC_S} $3 '' 0 +4
IntOp $6 $6 - $5
StrCpy $R1 $R0 $6 $5
goto end
- StrCmp $3 '{' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '{' 0 +3
StrCpy $R1 $R0 $6
goto end
- StrCmp $3 '}' 0 +4
+ StrCmp${_WORDFUNC_S} $3 '}' 0 +4
IntOp $6 $6 + $7
StrCpy $R1 $R0 '' $6
goto end
- StrCmp $3 '{*' +2
- StrCmp $3 '*{' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '{*' +2
+ StrCmp${_WORDFUNC_S} $3 '*{' 0 +3
StrCpy $R1 $R0 $6
goto end
- StrCmp $3 '*}' +2
- StrCmp $3 '}*' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '*}' +2
+ StrCmp${_WORDFUNC_S} $3 '}*' 0 +3
StrCpy $R1 $R0 '' $5
goto end
- StrCmp $3 '}}' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '}}' 0 +3
StrCpy $R1 $R0 '' $6
goto end
- StrCmp $3 '{{' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '{{' 0 +3
StrCpy $R1 $R0 $5
goto end
- StrCmp $3 '{}' 0 error3
+ StrCmp${_WORDFUNC_S} $3 '{}' 0 error3
StrLen $3 $R0
- StrCmp $3 $6 0 +3
+ StrCmp${_WORDFUNC_S} $3 $6 0 +3
StrCpy $0 ''
goto +2
IntOp $6 $6 + $7
StrCpy $8 $R0 '' $6
- StrCmp $4$8 1 +6
- StrCmp $4 1 +2 +7
+ StrCmp${_WORDFUNC_S} $4$8 1 +6
+ StrCmp${_WORDFUNC_S} $4 1 +2 +7
IntOp $6 $6 + $7
StrCpy $3 $R0 $7 $6
- StrCmp $3 '' +2
- StrCmp $3 $0 -3 +3
+ StrCmp${_WORDFUNC_S} $3 '' +2
+ StrCmp${_WORDFUNC_S} $3 $0 -3 +3
StrCpy $R1 ''
goto end
- StrCmp $5 0 0 +3
+ StrCmp${_WORDFUNC_S} $5 0 0 +3
StrCpy $0 ''
goto +2
IntOp $5 $5 - $7
@@ -363,22 +364,17 @@ VersionConvert
Exch $R0
FunctionEnd
-
- !ifndef _WORDFUNC_UN2
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
- !endif
!verbose pop
!endif
!macroend
!macro WordFind2X
- !ifndef ${_WORDFUNC_UN1}WordFind2X
+ !ifndef ${_WORDFUNC_UN}WordFind2X${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}WordFind2X `!insertmacro ${_WORDFUNC_UN1}WordFind2XCall`
+ !define ${_WORDFUNC_UN}WordFind2X${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordFind2X${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordFind2X
+ Function ${_WORDFUNC_UN}WordFind2X${_WORDFUNC_S}
Exch $2
Exch
Exch $1
@@ -407,28 +403,28 @@ VersionConvert
StrCpy $R2 E
goto -4
- StrCmp $3 '+' +5
- StrCmp $3 '-' +4
- StrCmp $3 '#' restart
- StrCmp $3 '/' restart
+ StrCmp${_WORDFUNC_S} $3 '+' +5
+ StrCmp${_WORDFUNC_S} $3 '-' +4
+ StrCmp${_WORDFUNC_S} $3 '#' restart
+ StrCmp${_WORDFUNC_S} $3 '/' restart
goto error3
StrCpy $4 $2 2 -2
- StrCmp $4 '{{' +9
- StrCmp $4 '}}' +8
- StrCmp $4 '{*' +7
- StrCmp $4 '*{' +6
- StrCmp $4 '*}' +5
- StrCmp $4 '}*' +4
- StrCmp $4 '{}' +3
+ StrCmp${_WORDFUNC_S} $4 '{{' +9
+ StrCmp${_WORDFUNC_S} $4 '}}' +8
+ StrCmp${_WORDFUNC_S} $4 '{*' +7
+ StrCmp${_WORDFUNC_S} $4 '*{' +6
+ StrCmp${_WORDFUNC_S} $4 '*}' +5
+ StrCmp${_WORDFUNC_S} $4 '}*' +4
+ StrCmp${_WORDFUNC_S} $4 '{}' +3
StrCpy $4 ''
goto +2
StrCpy $2 $2 -2
IntOp $2 $2 + 0
- StrCmp $2 0 error2
+ StrCmp${_WORDFUNC_S} $2 0 error2
restart:
- StrCmp $R0 '' error1
+ StrCmp${_WORDFUNC_S} $R0 '' error1
StrCpy $5 -1
StrCpy $6 0
StrCpy $7 ''
@@ -440,25 +436,25 @@ VersionConvert
delim1:
StrCpy $R1 $R0 $8 $5
- StrCmp $R1$6 0 error1
- StrCmp $R1 '' minus
- StrCmp $R1 $0 +2
- StrCmp $7 '' loop delim2
- StrCmp $0 $1 0 +2
- StrCmp $7 '' 0 delim2
+ StrCmp${_WORDFUNC_S} $R1$6 0 error1
+ StrCmp${_WORDFUNC_S} $R1 '' minus
+ StrCmp${_WORDFUNC_S} $R1 $0 +2
+ StrCmp${_WORDFUNC_S} $7 '' loop delim2
+ StrCmp${_WORDFUNC_S} $0 $1 0 +2
+ StrCmp${_WORDFUNC_S} $7 '' 0 delim2
IntOp $7 $5 + $8
StrCpy $5 $7
goto delim1
delim2:
StrCpy $R1 $R0 $9 $5
- StrCmp $R1 $1 0 loop
+ StrCmp${_WORDFUNC_S} $R1 $1 0 loop
IntOp $6 $6 + 1
- StrCmp $3$6 '+$2' plus
- StrCmp $3 '/' 0 nextword
+ StrCmp${_WORDFUNC_S} $3$6 '+$2' plus
+ StrCmp${_WORDFUNC_S} $3 '/' 0 nextword
IntOp $R1 $5 - $7
StrCpy $R1 $R0 $R1 $7
- StrCmp $R1 $2 0 +3
+ StrCmp${_WORDFUNC_S} $R1 $2 0 +3
StrCpy $R1 $6
goto end
nextword:
@@ -467,38 +463,38 @@ VersionConvert
goto delim1
minus:
- StrCmp $3 '-' 0 sum
+ StrCmp${_WORDFUNC_S} $3 '-' 0 sum
StrCpy $3 +
IntOp $2 $6 - $2
IntOp $2 $2 + 1
IntCmp $2 0 error2 error2 restart
sum:
- StrCmp $3 '#' 0 error2
+ StrCmp${_WORDFUNC_S} $3 '#' 0 error2
StrCpy $R1 $6
goto end
plus:
- StrCmp $4 '' 0 +4
+ StrCmp${_WORDFUNC_S} $4 '' 0 +4
IntOp $R1 $5 - $7
StrCpy $R1 $R0 $R1 $7
goto end
IntOp $5 $5 + $9
IntOp $7 $7 - $8
- StrCmp $4 '{*' +2
- StrCmp $4 '*{' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '{*' +2
+ StrCmp${_WORDFUNC_S} $4 '*{' 0 +3
StrCpy $R1 $R0 $5
goto end
- StrCmp $4 '*}' +2
- StrCmp $4 '}*' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '*}' +2
+ StrCmp${_WORDFUNC_S} $4 '}*' 0 +3
StrCpy $R1 $R0 '' $7
goto end
- StrCmp $4 '}}' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '}}' 0 +3
StrCpy $R1 $R0 '' $5
goto end
- StrCmp $4 '{{' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '{{' 0 +3
StrCpy $R1 $R0 $7
goto end
- StrCmp $4 '{}' 0 error3
+ StrCmp${_WORDFUNC_S} $4 '{}' 0 error3
StrCpy $5 $R0 '' $5
StrCpy $7 $R0 $7
StrCpy $R1 '$7$5'
@@ -534,19 +530,17 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro WordFind3X
- !ifndef ${_WORDFUNC_UN1}WordFind3X
+ !ifndef ${_WORDFUNC_UN}WordFind3X${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}WordFind3X `!insertmacro ${_WORDFUNC_UN1}WordFind3XCall`
+ !define ${_WORDFUNC_UN}WordFind3X${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordFind3X${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordFind3X
+ Function ${_WORDFUNC_UN}WordFind3X${_WORDFUNC_S}
Exch $3
Exch
Exch $2
@@ -580,28 +574,28 @@ VersionConvert
StrCpy $R5 E
goto -4
- StrCmp $4 '+' +5
- StrCmp $4 '-' +4
- StrCmp $4 '#' restart
- StrCmp $4 '/' restart
+ StrCmp${_WORDFUNC_S} $4 '+' +5
+ StrCmp${_WORDFUNC_S} $4 '-' +4
+ StrCmp${_WORDFUNC_S} $4 '#' restart
+ StrCmp${_WORDFUNC_S} $4 '/' restart
goto error3
StrCpy $5 $3 2 -2
- StrCmp $5 '{{' +9
- StrCmp $5 '}}' +8
- StrCmp $5 '{*' +7
- StrCmp $5 '*{' +6
- StrCmp $5 '*}' +5
- StrCmp $5 '}*' +4
- StrCmp $5 '{}' +3
+ StrCmp${_WORDFUNC_S} $5 '{{' +9
+ StrCmp${_WORDFUNC_S} $5 '}}' +8
+ StrCmp${_WORDFUNC_S} $5 '{*' +7
+ StrCmp${_WORDFUNC_S} $5 '*{' +6
+ StrCmp${_WORDFUNC_S} $5 '*}' +5
+ StrCmp${_WORDFUNC_S} $5 '}*' +4
+ StrCmp${_WORDFUNC_S} $5 '{}' +3
StrCpy $5 ''
goto +2
StrCpy $3 $3 -2
IntOp $3 $3 + 0
- StrCmp $3 0 error2
+ StrCmp${_WORDFUNC_S} $3 0 error2
restart:
- StrCmp $R0 '' error1
+ StrCmp${_WORDFUNC_S} $R0 '' error1
StrCpy $6 -1
StrCpy $7 0
StrCpy $8 ''
@@ -615,34 +609,34 @@ VersionConvert
delim1:
StrCpy $R4 $R0 $R1 $6
- StrCmp $R4$7 0 error1
- StrCmp $R4 '' minus
- StrCmp $R4 $0 +2
- StrCmp $8 '' loop center
- StrCmp $0 $1 +2
- StrCmp $0 $2 0 +2
- StrCmp $8 '' 0 center
+ StrCmp${_WORDFUNC_S} $R4$7 0 error1
+ StrCmp${_WORDFUNC_S} $R4 '' minus
+ StrCmp${_WORDFUNC_S} $R4 $0 +2
+ StrCmp${_WORDFUNC_S} $8 '' loop center
+ StrCmp${_WORDFUNC_S} $0 $1 +2
+ StrCmp${_WORDFUNC_S} $0 $2 0 +2
+ StrCmp${_WORDFUNC_S} $8 '' 0 center
IntOp $8 $6 + $R1
StrCpy $6 $8
goto delim1
center:
- StrCmp $9 '' 0 delim2
+ StrCmp${_WORDFUNC_S} $9 '' 0 delim2
StrCpy $R4 $R0 $R2 $6
- StrCmp $R4 $1 0 loop
+ StrCmp${_WORDFUNC_S} $R4 $1 0 loop
IntOp $9 $6 + $R2
StrCpy $6 $9
goto delim1
delim2:
StrCpy $R4 $R0 $R3 $6
- StrCmp $R4 $2 0 loop
+ StrCmp${_WORDFUNC_S} $R4 $2 0 loop
IntOp $7 $7 + 1
- StrCmp $4$7 '+$3' plus
- StrCmp $4 '/' 0 nextword
+ StrCmp${_WORDFUNC_S} $4$7 '+$3' plus
+ StrCmp${_WORDFUNC_S} $4 '/' 0 nextword
IntOp $R4 $6 - $8
StrCpy $R4 $R0 $R4 $8
- StrCmp $R4 $3 0 +3
+ StrCmp${_WORDFUNC_S} $R4 $3 0 +3
StrCpy $R4 $7
goto end
nextword:
@@ -652,38 +646,38 @@ VersionConvert
goto delim1
minus:
- StrCmp $4 '-' 0 sum
+ StrCmp${_WORDFUNC_S} $4 '-' 0 sum
StrCpy $4 +
IntOp $3 $7 - $3
IntOp $3 $3 + 1
IntCmp $3 0 error2 error2 restart
sum:
- StrCmp $4 '#' 0 error2
+ StrCmp${_WORDFUNC_S} $4 '#' 0 error2
StrCpy $R4 $7
goto end
plus:
- StrCmp $5 '' 0 +4
+ StrCmp${_WORDFUNC_S} $5 '' 0 +4
IntOp $R4 $6 - $8
StrCpy $R4 $R0 $R4 $8
goto end
IntOp $6 $6 + $R3
IntOp $8 $8 - $R1
- StrCmp $5 '{*' +2
- StrCmp $5 '*{' 0 +3
+ StrCmp${_WORDFUNC_S} $5 '{*' +2
+ StrCmp${_WORDFUNC_S} $5 '*{' 0 +3
StrCpy $R4 $R0 $6
goto end
- StrCmp $5 '*}' +2
- StrCmp $5 '}*' 0 +3
+ StrCmp${_WORDFUNC_S} $5 '*}' +2
+ StrCmp${_WORDFUNC_S} $5 '}*' 0 +3
StrCpy $R4 $R0 '' $8
goto end
- StrCmp $5 '}}' 0 +3
+ StrCmp${_WORDFUNC_S} $5 '}}' 0 +3
StrCpy $R4 $R0 '' $6
goto end
- StrCmp $5 '{{' 0 +3
+ StrCmp${_WORDFUNC_S} $5 '{{' 0 +3
StrCpy $R4 $R0 $8
goto end
- StrCmp $5 '{}' 0 error3
+ StrCmp${_WORDFUNC_S} $5 '{}' 0 error3
StrCpy $6 $R0 '' $6
StrCpy $8 $R0 $8
StrCpy $R4 '$8$6'
@@ -721,19 +715,17 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro WordReplace
- !ifndef ${_WORDFUNC_UN1}WordReplace
+ !ifndef ${_WORDFUNC_UN}WordReplace${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}WordReplace `!insertmacro ${_WORDFUNC_UN1}WordReplaceCall`
+ !define ${_WORDFUNC_UN}WordReplace${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordReplace${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordReplace
+ Function ${_WORDFUNC_UN}WordReplace${_WORDFUNC_S}
Exch $2
Exch
Exch $1
@@ -757,69 +749,71 @@ VersionConvert
StrCpy $R1 $R0
StrCpy $9 ''
StrCpy $3 $2 1
- StrCmp $3 'E' 0 +4
- StrCpy $9 E
StrCpy $2 $2 '' 1
+ StrCmp $3 'E' 0 +3
+ StrCpy $9 E
goto -4
- StrLen $7 $0
-
- StrCpy $4 $2 3
- StrCpy $5 $2 2
- StrCmp $4 '{}*' +3
- StrCmp $5 '{}' +2
- goto errorchk
- StrCmp $7 0 end
+ StrCpy $4 $2 1 -1
StrCpy $5 ''
StrCpy $6 ''
- StrCpy $3 $R0 $7
- StrCmp $3 $0 0 +4
+ StrLen $7 $0
+
+ StrCmp${_WORDFUNC_S} $7 0 error1
+ StrCmp${_WORDFUNC_S} $R0 '' error1
+ StrCmp${_WORDFUNC_S} $3 '{' beginning
+ StrCmp${_WORDFUNC_S} $3 '}' ending errorchk
+
+ beginning:
+ StrCpy $8 $R0 $7
+ StrCmp${_WORDFUNC_S} $8 $0 0 +4
StrCpy $R0 $R0 '' $7
- StrCpy $5 '$1$5'
+ StrCpy $5 '$5$1'
goto -4
- StrCpy $3 $R0 '' -$7
- StrCmp $3 $0 0 +4
+ StrCpy $3 $2 1
+ StrCmp${_WORDFUNC_S} $3 '}' 0 merge
+
+ ending:
+ StrCpy $8 $R0 '' -$7
+ StrCmp${_WORDFUNC_S} $8 $0 0 +4
StrCpy $R0 $R0 -$7
StrCpy $6 '$6$1'
goto -4
- StrCmp $4 '{}*' 0 +5
- StrCmp $5 '' +2
+
+ merge:
+ StrCmp${_WORDFUNC_S} $4 '*' 0 +5
+ StrCmp${_WORDFUNC_S} $5 '' +2
StrCpy $5 $1
- StrCmp $6 '' +2
+ StrCmp${_WORDFUNC_S} $6 '' +2
StrCpy $6 $1
StrCpy $R0 '$5$R0$6'
goto end
errorchk:
- StrCpy $3 $2 1
- StrCpy $2 $2 '' 1
- StrCmp $3 '+' +2
- StrCmp $3 '-' 0 error3
- StrCmp $R0 '' error1
- StrCmp $7 0 error1
+ StrCmp${_WORDFUNC_S} $3 '+' +2
+ StrCmp${_WORDFUNC_S} $3 '-' 0 error3
- StrCpy $4 $2 1 -1
StrCpy $5 $2 1
IntOp $2 $2 + 0
- StrCmp $2 0 0 one
- StrCmp $5 0 error2
+ StrCmp${_WORDFUNC_S} $2 0 0 one
+ StrCmp${_WORDFUNC_S} $5 0 error2
StrCpy $3 ''
all:
StrCpy $5 0
StrCpy $2 $R0 $7 $5
- StrCmp $2 '' +4
- StrCmp $2 $0 +6
+ StrCmp${_WORDFUNC_S} $2 '' +4
+ StrCmp${_WORDFUNC_S} $2 $0 +6
IntOp $5 $5 + 1
goto -4
- StrCmp $R0 $R1 error1
+ StrCmp${_WORDFUNC_S} $R0 $R1 error1
StrCpy $R0 '$3$R0'
goto end
StrCpy $2 $R0 $5
IntOp $5 $5 + $7
- StrCmp $4 '*' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '*' 0 +3
StrCpy $6 $R0 $7 $5
- StrCmp $6 $0 -3
+ StrCmp${_WORDFUNC_S} $6 $0 -3
StrCpy $R0 $R0 '' $5
StrCpy $3 '$3$2$1'
goto all
@@ -834,16 +828,16 @@ VersionConvert
loop:
StrCpy $6 $R0 $7 $5
- StrCmp $6$8 0 error1
- StrCmp $6 '' minus
- StrCmp $6 $0 0 preloop
+ StrCmp${_WORDFUNC_S} $6$8 0 error1
+ StrCmp${_WORDFUNC_S} $6 '' minus
+ StrCmp${_WORDFUNC_S} $6 $0 0 preloop
IntOp $8 $8 + 1
- StrCmp $3$8 +$2 found
+ StrCmp${_WORDFUNC_S} $3$8 +$2 found
IntOp $5 $5 + $7
goto loop
minus:
- StrCmp $3 '-' 0 error2
+ StrCmp${_WORDFUNC_S} $3 '-' 0 error2
StrCpy $3 +
IntOp $2 $8 - $2
IntOp $2 $2 + 1
@@ -851,15 +845,15 @@ VersionConvert
found:
StrCpy $3 $R0 $5
- StrCmp $4 '*' 0 +5
+ StrCmp${_WORDFUNC_S} $4 '*' 0 +5
StrCpy $6 $3 '' -$7
- StrCmp $6 $0 0 +3
+ StrCmp${_WORDFUNC_S} $6 $0 0 +3
StrCpy $3 $3 -$7
goto -3
IntOp $5 $5 + $7
- StrCmp $4 '*' 0 +3
+ StrCmp${_WORDFUNC_S} $4 '*' 0 +3
StrCpy $6 $R0 $7 $5
- StrCmp $6 $0 -3
+ StrCmp${_WORDFUNC_S} $6 $0 -3
StrCpy $R0 $R0 '' $5
StrCpy $R0 '$3$1$R0'
goto end
@@ -893,21 +887,19 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro WordAdd
- !ifndef ${_WORDFUNC_UN1}WordAdd
+ !ifndef ${_WORDFUNC_UN}WordAdd${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
!insertmacro WordFind
- !define ${_WORDFUNC_UN1}WordAdd `!insertmacro ${_WORDFUNC_UN1}WordAddCall`
+ !define ${_WORDFUNC_UN}WordAdd${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordAdd${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordAdd
+ Function ${_WORDFUNC_UN}WordAdd${_WORDFUNC_S}
Exch $1
Exch
Exch $0
@@ -935,14 +927,14 @@ VersionConvert
StrCpy $R1 $R0
StrCpy $2 $1 '' 1
StrCpy $1 $1 1
- StrCmp $1 '+' +2
- StrCmp $1 '-' 0 error3
+ StrCmp${_WORDFUNC_S} $1 '+' +2
+ StrCmp${_WORDFUNC_S} $1 '-' 0 error3
- StrCmp $0 '' error1
- StrCmp $2 '' end
- StrCmp $R0 '' 0 +5
- StrCmp $1 '-' end
- StrCmp $1 '+' 0 +3
+ StrCmp${_WORDFUNC_S} $0 '' error1
+ StrCmp${_WORDFUNC_S} $2 '' end
+ StrCmp${_WORDFUNC_S} $R0 '' 0 +5
+ StrCmp${_WORDFUNC_S} $1 '-' end
+ StrCmp${_WORDFUNC_S} $1 '+' 0 +3
StrCpy $R0 $2
goto end
@@ -951,36 +943,36 @@ VersionConvert
Push `$2`
Push `$0`
Push `E+$5`
- Call ${_WORDFUNC_UN1}WordFind
+ Call ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
Pop $3
IfErrors 0 /word
- StrCmp $3 2 +4
- StrCmp $3$5 11 0 +3
+ StrCmp${_WORDFUNC_S} $3 2 +4
+ StrCmp${_WORDFUNC_S} $3$5 11 0 +3
StrCpy $3 $2
goto /word
- StrCmp $1 '-' end preend
+ StrCmp${_WORDFUNC_S} $1 '-' end preend
/word:
Push `$R0`
Push `$0`
Push `E/$3`
- Call ${_WORDFUNC_UN1}WordFind
+ Call ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
Pop $4
IfErrors +2
- StrCmp $1 '-' delete loop
- StrCmp $1$4 '-1' +2
- StrCmp $1 '-' loop +4
- StrCmp $R0 $3 0 loop
+ StrCmp${_WORDFUNC_S} $1 '-' delete loop
+ StrCmp${_WORDFUNC_S} $1$4 '-1' +2
+ StrCmp${_WORDFUNC_S} $1 '-' loop +4
+ StrCmp${_WORDFUNC_S} $R0 $3 0 loop
StrCpy $R0 ''
goto end
- StrCmp $1$4 '+1' 0 +2
- StrCmp $R0 $3 loop
- StrCmp $R0 $R1 +3
+ StrCmp${_WORDFUNC_S} $1$4 '+1' 0 +2
+ StrCmp${_WORDFUNC_S} $R0 $3 loop
+ StrCmp${_WORDFUNC_S} $R0 $R1 +3
StrCpy $R1 '$R1$0$3'
goto loop
StrLen $6 $0
StrCpy $6 $R0 '' -$6
- StrCmp $6 $0 0 -4
+ StrCmp${_WORDFUNC_S} $6 $0 0 -4
StrCpy $R1 '$R1$3'
goto loop
@@ -988,7 +980,7 @@ VersionConvert
Push `$R0`
Push `$0`
Push `E+$4{}`
- Call ${_WORDFUNC_UN1}WordFind
+ Call ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
Pop $R0
goto /word
@@ -1017,21 +1009,19 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro WordInsert
- !ifndef ${_WORDFUNC_UN1}WordInsert
+ !ifndef ${_WORDFUNC_UN}WordInsert${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
!insertmacro WordFind
- !define ${_WORDFUNC_UN1}WordInsert `!insertmacro ${_WORDFUNC_UN1}WordInsertCall`
+ !define ${_WORDFUNC_UN}WordInsert${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}WordInsert${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}WordInsert
+ Function ${_WORDFUNC_UN}WordInsert${_WORDFUNC_S}
Exch $2
Exch
Exch $1
@@ -1064,21 +1054,21 @@ VersionConvert
StrCpy $9 'E'
goto -4
- StrCmp $3 '+' +2
- StrCmp $3 '-' 0 error3
+ StrCmp${_WORDFUNC_S} $3 '+' +2
+ StrCmp${_WORDFUNC_S} $3 '-' 0 error3
IntOp $2 $2 + 0
- StrCmp $2 0 error2
- StrCmp $0 '' error1
+ StrCmp${_WORDFUNC_S} $2 0 error2
+ StrCmp${_WORDFUNC_S} $0 '' error1
- StrCmp $2 1 0 two
+ StrCmp${_WORDFUNC_S} $2 1 0 two
GetLabelAddress $8 oneback
- StrCmp $3 '+' call
+ StrCmp${_WORDFUNC_S} $3 '+' call
StrCpy $7 {
goto call
oneback:
IfErrors 0 +2
StrCpy $4 $R0
- StrCmp $3 '+' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '+' 0 +3
StrCpy $R0 '$1$0$4'
goto end
StrCpy $R0 '$4$0$1'
@@ -1087,13 +1077,13 @@ VersionConvert
two:
IntOp $2 $2 - 1
GetLabelAddress $8 twoback
- StrCmp $3 '+' 0 call
+ StrCmp${_WORDFUNC_S} $3 '+' 0 call
StrCpy $7 {
goto call
twoback:
IfErrors 0 tree
- StrCmp $2$4 11 0 error2
- StrCmp $3 '+' 0 +3
+ StrCmp${_WORDFUNC_S} $2$4 11 0 error2
+ StrCmp${_WORDFUNC_S} $3 '+' 0 +3
StrCpy $R0 '$R0$0$1'
goto end
StrCpy $R0 '$1$0$R0'
@@ -1104,14 +1094,14 @@ VersionConvert
StrCpy $5 $4
IntOp $2 $2 + 1
GetLabelAddress $8 treeback
- StrCmp $3 '+' call
+ StrCmp${_WORDFUNC_S} $3 '+' call
StrCpy $7 {
goto call
treeback:
IfErrors 0 +3
StrCpy $4 ''
StrCpy $6 ''
- StrCmp $3 '+' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '+' 0 +3
StrCpy $R0 '$5$0$1$6$4'
goto end
StrCpy $R0 '$4$6$1$0$5'
@@ -1121,7 +1111,7 @@ VersionConvert
Push '$R0'
Push '$0'
Push 'E$3$2*$7'
- Call ${_WORDFUNC_UN1}WordFind
+ Call ${_WORDFUNC_UN}WordFind${_WORDFUNC_S}
Pop $4
goto $8
@@ -1154,19 +1144,17 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro StrFilter
- !ifndef ${_WORDFUNC_UN1}StrFilter
+ !ifndef ${_WORDFUNC_UN}StrFilter${_WORDFUNC_S}
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}StrFilter `!insertmacro ${_WORDFUNC_UN1}StrFilterCall`
+ !define ${_WORDFUNC_UN}StrFilter${_WORDFUNC_S} `!insertmacro ${_WORDFUNC_UN}StrFilter${_WORDFUNC_S}Call`
- Function ${_WORDFUNC_UN1}StrFilter
+ Function ${_WORDFUNC_UN}StrFilter${_WORDFUNC_S}
Exch $2
Exch
Exch $1
@@ -1213,46 +1201,46 @@ VersionConvert
StrCpy $R7 ''
StrCpy $R8 ''
- StrCmp $2 '' 0 begin
+ StrCmp${_WORDFUNC_S} $2 '' 0 begin
restart1:
StrCpy $2 ''
StrCpy $3 $0 1
- StrCmp $3 '+' +2
- StrCmp $3 '-' 0 +3
+ StrCmp${_WORDFUNC_S} $3 '+' +2
+ StrCmp${_WORDFUNC_S} $3 '-' 0 +3
StrCpy $0 $0 '' 1
goto +2
StrCpy $3 ''
IntOp $0 $0 + 0
- StrCmp $0 0 +5
+ StrCmp${_WORDFUNC_S} $0 0 +5
StrCpy $R7 $0 1 0
StrCpy $R8 $0 1 1
StrCpy $R2 $0 1 2
- StrCmp $R2 '' filter error
+ StrCmp${_WORDFUNC_S} $R2 '' filter error
restart2:
- StrCmp $3 '' end
+ StrCmp${_WORDFUNC_S} $3 '' end
StrCpy $R7 ''
StrCpy $R8 '+-'
goto begin
filter:
- StrCmp $R7 '1' +3
- StrCmp $R7 '2' +2
- StrCmp $R7 '3' 0 error
+ StrCmp${_WORDFUNC_S} $R7 '1' +3
+ StrCmp${_WORDFUNC_S} $R7 '2' +2
+ StrCmp${_WORDFUNC_S} $R7 '3' 0 error
- StrCmp $R8 '' begin
- StrCmp $R7$R8 '23' +2
- StrCmp $R7$R8 '32' 0 +3
+ StrCmp${_WORDFUNC_S} $R8 '' begin
+ StrCmp${_WORDFUNC_S} $R7$R8 '23' +2
+ StrCmp${_WORDFUNC_S} $R7$R8 '32' 0 +3
StrCpy $R7 -1
goto begin
- StrCmp $R7$R8 '13' +2
- StrCmp $R7$R8 '31' 0 +3
+ StrCmp${_WORDFUNC_S} $R7$R8 '13' +2
+ StrCmp${_WORDFUNC_S} $R7$R8 '31' 0 +3
StrCpy $R7 -2
goto begin
- StrCmp $R7$R8 '12' +2
- StrCmp $R7$R8 '21' 0 error
+ StrCmp${_WORDFUNC_S} $R7$R8 '12' +2
+ StrCmp${_WORDFUNC_S} $R7$R8 '21' 0 error
StrCpy $R7 -3
begin:
@@ -1261,31 +1249,31 @@ VersionConvert
loop:
StrCpy $R2 $R0 1 $R6
- StrCmp $R2 '' restartchk
+ StrCmp${_WORDFUNC_S} $R2 '' restartchk
- StrCmp $2 '' +7
+ StrCmp${_WORDFUNC_S} $2 '' +7
StrCpy $R4 0
StrCpy $R5 $2 1 $R4
- StrCmp $R5 '' addsymbol
- StrCmp $R5 $R2 skipsymbol
+ StrCmp${_WORDFUNC_S} $R5 '' addsymbol
+ StrCmp${_WORDFUNC_S} $R5 $R2 skipsymbol
IntOp $R4 $R4 + 1
goto -4
- StrCmp $1 '' +7
+ StrCmp${_WORDFUNC_S} $1 '' +7
StrCpy $R4 0
StrCpy $R5 $1 1 $R4
- StrCmp $R5 '' +4
- StrCmp $R5 $R2 addsymbol
+ StrCmp${_WORDFUNC_S} $R5 '' +4
+ StrCmp${_WORDFUNC_S} $R5 $R2 addsymbol
IntOp $R4 $R4 + 1
goto -4
- StrCmp $R7 '1' +2
- StrCmp $R7 '-1' 0 +4
+ StrCmp${_WORDFUNC_S} $R7 '1' +2
+ StrCmp${_WORDFUNC_S} $R7 '-1' 0 +4
StrCpy $R4 48
StrCpy $R5 57
goto loop2
- StrCmp $R8 '+-' 0 +2
- StrCmp $3 '+' 0 +4
+ StrCmp${_WORDFUNC_S} $R8 '+-' 0 +2
+ StrCmp${_WORDFUNC_S} $3 '+' 0 +4
StrCpy $R4 $4
StrCpy $R5 $5
goto loop2
@@ -1300,21 +1288,21 @@ VersionConvert
goto loop2
found:
- StrCmp $R8 '+-' setcase
- StrCmp $R7 '3' skipsymbol
- StrCmp $R7 '-3' addsymbol
- StrCmp $R8 '' addsymbol skipsymbol
+ StrCmp${_WORDFUNC_S} $R8 '+-' setcase
+ StrCmp${_WORDFUNC_S} $R7 '3' skipsymbol
+ StrCmp${_WORDFUNC_S} $R7 '-3' addsymbol
+ StrCmp${_WORDFUNC_S} $R8 '' addsymbol skipsymbol
notfound:
- StrCmp $R8 '+-' addsymbol
- StrCmp $R7 '3' 0 +2
- StrCmp $R5 57 addsymbol +3
- StrCmp $R7 '-3' 0 +5
- StrCmp $R5 57 skipsymbol
+ StrCmp${_WORDFUNC_S} $R8 '+-' addsymbol
+ StrCmp${_WORDFUNC_S} $R7 '3' 0 +2
+ StrCmp${_WORDFUNC_S} $R5 57 addsymbol +3
+ StrCmp${_WORDFUNC_S} $R7 '-3' 0 +5
+ StrCmp${_WORDFUNC_S} $R5 57 skipsymbol
StrCpy $R4 48
StrCpy $R5 57
goto loop2
- StrCmp $R8 '' skipsymbol addsymbol
+ StrCmp${_WORDFUNC_S} $R8 '' skipsymbol addsymbol
setcase:
StrCpy $R2 $R3
@@ -1331,8 +1319,8 @@ VersionConvert
restartchk:
StrCpy $R0 $R1
- StrCmp $2 '' 0 restart1
- StrCmp $R8 '+-' 0 restart2
+ StrCmp${_WORDFUNC_S} $2 '' 0 restart1
+ StrCmp${_WORDFUNC_S} $R8 '+-' 0 restart2
end:
Pop $R8
@@ -1354,19 +1342,17 @@ VersionConvert
Exch $R0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro VersionCompare
- !ifndef ${_WORDFUNC_UN1}VersionCompare
+ !ifndef ${_WORDFUNC_UN}VersionCompare
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}VersionCompare `!insertmacro ${_WORDFUNC_UN1}VersionCompareCall`
+ !define ${_WORDFUNC_UN}VersionCompare `!insertmacro ${_WORDFUNC_UN}VersionCompareCall`
- Function ${_WORDFUNC_UN1}VersionCompare
+ Function ${_WORDFUNC_UN}VersionCompare
Exch $1
Exch
Exch $0
@@ -1442,19 +1428,17 @@ VersionConvert
Exch $0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
!macro VersionConvert
- !ifndef ${_WORDFUNC_UN1}VersionConvert
+ !ifndef ${_WORDFUNC_UN}VersionConvert
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !define ${_WORDFUNC_UN1}VersionConvert `!insertmacro ${_WORDFUNC_UN1}VersionConvertCall`
+ !define ${_WORDFUNC_UN}VersionConvert `!insertmacro ${_WORDFUNC_UN}VersionConvertCall`
- Function ${_WORDFUNC_UN1}VersionConvert
+ Function ${_WORDFUNC_UN}VersionConvert
Exch $1
Exch
Exch $0
@@ -1559,12 +1543,13 @@ VersionConvert
Exch $0
FunctionEnd
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1
!verbose pop
!endif
!macroend
+
+# Uninstall. Case insensitive. #
+
!macro un.WordFindCall _STRING _DELIMITER _OPTION _RESULT
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
@@ -1668,17 +1653,18 @@ VersionConvert
!verbose pop
!macroend
+
!macro un.WordFind
!ifndef un.WordFind
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
- !undef _WORDFUNC_UN2
!insertmacro WordFind
- !define _WORDFUNC_UN2
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1687,11 +1673,13 @@ VersionConvert
!ifndef un.WordFind2X
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro WordFind2X
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1700,11 +1688,13 @@ VersionConvert
!ifndef un.WordFind3X
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro WordFind3X
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1713,11 +1703,13 @@ VersionConvert
!ifndef un.WordReplace
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro WordReplace
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1726,11 +1718,13 @@ VersionConvert
!ifndef un.WordAdd
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro WordAdd
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1739,11 +1733,13 @@ VersionConvert
!ifndef un.WordInsert
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro WordInsert
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1752,11 +1748,13 @@ VersionConvert
!ifndef un.StrFilter
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro StrFilter
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1765,11 +1763,13 @@ VersionConvert
!ifndef un.VersionCompare
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro VersionCompare
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
!verbose pop
!endif
!macroend
@@ -1778,11 +1778,423 @@ VersionConvert
!ifndef un.VersionConvert
!verbose push
!verbose ${_WORDFUNC_VERBOSE}
- !undef _WORDFUNC_UN1
- !define _WORDFUNC_UN1 `un.`
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
!insertmacro VersionConvert
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !verbose pop
+ !endif
+!macroend
+
+
+# Install. Case sensitive. #
+
+!macro WordFindSCall _STRING _DELIMITER _OPTION _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER}`
+ Push `${_OPTION}`
+ Call WordFindS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordFind2XSCall _STRING _DELIMITER1 _DELIMITER2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER1}`
+ Push `${_DELIMITER2}`
+ Push `${_NUMBER}`
+ Call WordFind2XS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordFind3XSCall _STRING _DELIMITER1 _CENTER _DELIMITER2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER1}`
+ Push `${_CENTER}`
+ Push `${_DELIMITER2}`
+ Push `${_NUMBER}`
+ Call WordFind3XS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordReplaceSCall _STRING _WORD1 _WORD2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_WORD1}`
+ Push `${_WORD2}`
+ Push `${_NUMBER}`
+ Call WordReplaceS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordAddSCall _STRING1 _DELIMITER _STRING2 _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING1}`
+ Push `${_DELIMITER}`
+ Push `${_STRING2}`
+ Call WordAddS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordInsertSCall _STRING _DELIMITER _WORD _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER}`
+ Push `${_WORD}`
+ Push `${_NUMBER}`
+ Call WordInsertS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro StrFilterSCall _STRING _FILTER _INCLUDE _EXCLUDE _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_FILTER}`
+ Push `${_INCLUDE}`
+ Push `${_EXCLUDE}`
+ Call StrFilterS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro WordFindS
+ !ifndef WordFindS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro WordFind2XS
+ !ifndef WordFind2XS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind2X
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro WordFind3XS
+ !ifndef WordFind3XS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind3X
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro WordReplaceS
+ !ifndef WordReplaceS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordReplace
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro WordAddS
+ !ifndef WordAddS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordAdd
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro WordInsertS
+ !ifndef WordInsertS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordInsert
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro StrFilterS
+ !ifndef StrFilterS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro StrFilter
+
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+
+# Uninstall. Case sensitive. #
+
+!macro un.WordFindSCall _STRING _DELIMITER _OPTION _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER}`
+ Push `${_OPTION}`
+ Call un.WordFindS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordFind2XSCall _STRING _DELIMITER1 _DELIMITER2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER1}`
+ Push `${_DELIMITER2}`
+ Push `${_NUMBER}`
+ Call un.WordFind2XS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordFind3XSCall _STRING _DELIMITER1 _CENTER _DELIMITER2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER1}`
+ Push `${_CENTER}`
+ Push `${_DELIMITER2}`
+ Push `${_NUMBER}`
+ Call un.WordFind3XS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordReplaceSCall _STRING _WORD1 _WORD2 _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_WORD1}`
+ Push `${_WORD2}`
+ Push `${_NUMBER}`
+ Call un.WordReplaceS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordAddSCall _STRING1 _DELIMITER _STRING2 _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING1}`
+ Push `${_DELIMITER}`
+ Push `${_STRING2}`
+ Call un.WordAddS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordInsertSCall _STRING _DELIMITER _WORD _NUMBER _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_DELIMITER}`
+ Push `${_WORD}`
+ Push `${_NUMBER}`
+ Call un.WordInsertS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.StrFilterSCall _STRING _FILTER _INCLUDE _EXCLUDE _RESULT
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ Push `${_STRING}`
+ Push `${_FILTER}`
+ Push `${_INCLUDE}`
+ Push `${_EXCLUDE}`
+ Call un.StrFilterS
+ Pop ${_RESULT}
+ !verbose pop
+!macroend
+
+!macro un.WordFindS
+ !ifndef un.WordFindS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_S
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.WordFind2XS
+ !ifndef un.WordFind2XS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind2X
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.WordFind3XS
+ !ifndef un.WordFind3XS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordFind3X
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.WordReplaceS
+ !ifndef un.WordReplaceS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordReplace
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.WordAddS
+ !ifndef un.WordAddS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordAdd
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.WordInsertS
+ !ifndef un.WordInsertS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro WordInsert
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
+ !verbose pop
+ !endif
+!macroend
+
+!macro un.StrFilterS
+ !ifndef un.StrFilterS
+ !verbose push
+ !verbose ${_WORDFUNC_VERBOSE}
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN `un.`
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S `S`
+
+ !insertmacro StrFilter
+
+ !undef _WORDFUNC_UN
+ !define _WORDFUNC_UN
+ !undef _WORDFUNC_S
+ !define _WORDFUNC_S
!verbose pop
!endif
!macroend