Check for spaces in a directory path: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
Line 2: | Line 2: | ||
== Description == | == Description == | ||
This script will | 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 | Updated 12th January 2005 |
Revision as of 19:00, 12 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 " " found Goto loop found: IntOp $R0 $R0 + 1 Goto loop done: Pop $R3 Pop $R2 Pop $R1 Exch $R0 FunctionEnd
-Stu