Index: base/setup/usetup/errorcode.h =================================================================== --- base/setup/usetup/errorcode.h (Revision 55348) +++ base/setup/usetup/errorcode.h (Arbeitskopie) @@ -66,6 +66,7 @@ ERROR_ADDING_KBLAYOUTS, ERROR_UPDATE_GEOID, ERROR_INSUFFICIENT_DISKSPACE, + ERROR_DIRECTORY_NAME, ERROR_LAST_ERROR_CODE }ERROR_NUMBER; Index: base/setup/usetup/lang/de-DE.h =================================================================== --- base/setup/usetup/lang/de-DE.h (Revision 55348) +++ base/setup/usetup/lang/de-DE.h (Arbeitskopie) @@ -1486,6 +1486,11 @@ { //ERROR_INSUFFICIENT_DISKSPACE, "Nicht genug Speicherplatz auf der gew„hlten Partition vorhanden.\n" + " * Eine beliebige Taste zum Fortsetzen drcken." + }, + { + //ERROR_DIRECTORY_NAME, + "Unzul„ssiger Verzeichnisname.\n" " * Eine beliebige Taste zum Fortsetzen drcken.", NULL }, Index: base/setup/usetup/lang/en-US.h =================================================================== --- base/setup/usetup/lang/en-US.h (Revision 55348) +++ base/setup/usetup/lang/en-US.h (Arbeitskopie) @@ -1485,6 +1485,11 @@ { //ERROR_INSUFFICIENT_DISKSPACE, "Not enough free space in the selected partition.\n" + " * Press any key to continue." + }, + { + //ERROR_DIRECTORY_NAME, + "invalid directory name.\n" " * Press any key to continue.", NULL }, Index: base/setup/usetup/filesup.c =================================================================== --- base/setup/usetup/filesup.c (Revision 55348) +++ base/setup/usetup/filesup.c (Arbeitskopie) @@ -392,4 +392,23 @@ return(TRUE); } +BOOLEAN +IsValidPath(PWCHAR InstallDir, ULONG Length) +{ + int i; + + /* TODO: Add check for 8.3 too + + /* Check for Whitespaces */ + for(i=0;i<=Length;i++) + { + if(isspace(InstallDir[i])) + { + return(FALSE); + } + } + + return(TRUE); +} + /* EOF */ Index: base/setup/usetup/filesup.h =================================================================== --- base/setup/usetup/filesup.h (Revision 55348) +++ base/setup/usetup/filesup.h (Arbeitskopie) @@ -42,4 +42,8 @@ DoesFileExist(PWSTR PathName, PWSTR FileName); +BOOLEAN +IsValidPath(PWCHAR InstallDir, + ULONG Length); + /* EOF */ Index: base/setup/usetup/interface/usetup.c =================================================================== --- base/setup/usetup/interface/usetup.c (Revision 55348) +++ base/setup/usetup/interface/usetup.c (Arbeitskopie) @@ -2677,6 +2677,11 @@ } else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */ { + if(!IsValidPath(InstallDir, Length)) + { + MUIDisplayError(ERROR_DIRECTORY_NAME, Ir, POPUP_WAIT_ENTER); + return INSTALL_DIRECTORY_PAGE; + } return InstallDirectoryPage1(InstallDir, DiskEntry, PartEntry,