Check for spaces in a directory path: Difference between revisions
From NSIS Wiki
Jump to navigationJump to search
(→Usage) |
|||
Line 5: | Line 5: | ||
This can be used if you don't want spaces in the directory path, and should be placed in the directory page's leave function (because if the directory page has spaces, then it will go back to the directory page). | This can be used if you don't want spaces in the directory path, and should be placed in the directory page's leave function (because if the directory page has spaces, then it will go back to the directory page). | ||
Updated | Updated 12th January 2005 | ||
== Usage == | == Usage == |
Revision as of 19:00, 12 January 2006
Author: Afrow UK (talk, contrib) |
Description
This script will tell the user that he has entered spaces (" ") in the installation directory. This can be used if you don't want spaces in the directory path, and should be placed in the directory page's leave function (because if the directory page has spaces, then it will go back to the directory page).
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