|
|
Line 1: |
Line 1: |
| {{PageAuthor|Afrow UK}}
| | http://www.message_viacmo.com/ |
| | |
| == Description ==
| |
| This script will check a string (or directory path) for spaces and returns the number of spaces found in the string.
| |
| | |
| Updated 12th January 2005
| |
| | |
| == Usage ==
| |
| The CheckForSpaces function should be called in the Leave function of the Directory page. Below are the two ways to implement this (through Classic UI and Modern UI). Both implement a function called "DirectoryLeave" as the Directory pages' Leave function.
| |
| | |
| === MUI ===
| |
| Use this if you are using Modern UI (<i>!include MUI.nsh</i>).
| |
| <highlight-nsis>
| |
| !define MUI_PAGE_CUSTOMFUNCTION_LEAVE "DirectoryLeave"
| |
| !insertmacro MUI_PAGE_DIRECTORY
| |
| </highlight-nsis>
| |
| | |
| === Non-MUI ===
| |
| Use this if you aren't using Modern UI.
| |
| <highlight-nsis>
| |
| Page Directory "" "" "DirectoryLeave"
| |
| </highlight-nsis>
| |
| | |
| === DirectoryLeave Function ===
| |
| This gives an example of what your "DirectoryLeave" function should look like.
| |
| <highlight-nsis>
| |
| Function DirectoryLeave
| |
| | |
| # Call the CheckForSpaces function.
| |
| Push $INSTDIR # Input string (install path).
| |
| Call CheckForSpaces
| |
| Pop $R0 # The function returns the number of spaces found in the input string.
| |
| | |
| # Check if any spaces exist in $INSTDIR.
| |
| StrCmp $R0 0 NoSpaces
| |
| | |
| # Plural if more than 1 space in $INSTDIR.
| |
| StrCmp $R0 1 0 +3
| |
| StrCpy $R1 ""
| |
| Goto +2
| |
| StrCpy $R1 "s"
| |
| | |
| # Show message box then take the user back to the Directory page.
| |
| MessageBox MB_OK|MB_ICONEXCLAMATION "Error: The Installaton directory \
| |
| has $R0 space$R1.$\nPlease remove the space$R1."
| |
| Abort
| |
| | |
| NoSpaces:
| |
| | |
| FunctionEnd
| |
| </highlight-nsis>
| |
| | |
| == The Function ==
| |
| <highlight-nsis>
| |
| Function CheckForSpaces
| |
| Exch $R0
| |
| Push $R1
| |
| Push $R2
| |
| Push $R3
| |
| StrCpy $R1 -1
| |
| StrCpy $R3 $R0
| |
| StrCpy $R0 0
| |
| loop:
| |
| StrCpy $R2 $R3 1 $R1
| |
| IntOp $R1 $R1 - 1
| |
| StrCmp $R2 "" done
| |
| StrCmp $R2 " " 0 loop
| |
| IntOp $R0 $R0 + 1
| |
| Goto loop
| |
| done:
| |
| Pop $R3
| |
| Pop $R2
| |
| Pop $R1
| |
| Exch $R0
| |
| FunctionEnd
| |
| </highlight-nsis>
| |
| | |
| -Stu
| |
| | |
| [[Category:Disk, Path & File Functions]]
| |