Updates by Instructor

1. "WordReplace"
   -Added options "{", "}", "{*", "}*"

2. "GetOptions"
   -Now sets error flag if option does not found

3. "ConfigRead"
   -Now sets error flag if entry does not found

4. New case sensitive functions:
      "WordFindS", "WordFind2XS", "WordFind3XS", "WordReplaceS",
      "WordAddS", "WordInsertS", "StrFilterS", "TextCompareS",
      "ConfigReadS", "ConfigWriteS", "GetOptionsS"


git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4517 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2006-02-10 10:46:57 +00:00
parent 082160fb3e
commit aa43f0c349
9 changed files with 1534 additions and 572 deletions

View file

@ -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