Check for spaces in a directory path: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 72: | Line 72: | ||
</highlight-nsis> | </highlight-nsis> | ||
-Stu | |||
[[Category:Disk, Path & File Functions]] | [[Category:Disk, Path & File Functions]] |
Revision as of 17:12, 15 January 2006
Author: Afrow UK (talk, contrib) |
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
Non-MUI
Page Directory "" "" "DirectoryLeave"
MUI
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE "DirectoryLeave" !insertmacro MUI_PAGE_DIRECTORY
DirectoryLeave Function
Function DirectoryLeave # Call the CheckForSpaces function. Push $INSTDIR Call CheckForSpaces Pop $R0 # 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
The Function
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
-Stu