fix a bug in 'if exsist', it was only reading to the first space for the file name, ignoring quotes and there fore searching for bad file names.
Modified: trunk/reactos/subsys/system/cmd/if.c

Modified: trunk/reactos/subsys/system/cmd/if.c
--- trunk/reactos/subsys/system/cmd/if.c	2005-09-16 14:50:25 UTC (rev 17879)
+++ trunk/reactos/subsys/system/cmd/if.c	2005-09-16 15:00:22 UTC (rev 17880)
@@ -69,15 +69,36 @@
 			param++;
 
 		pp = param;
-		while (*pp && !_istspace (*pp))
+
+		INT i;
+		BOOL bInside = FALSE;
+		/* find the whole path to the file */
+		for(i = 0; i < _tcslen(param); i++)
+		{
+			if(param[i] == _T('\"')) 
+				bInside = !bInside;
+			if((param[i] == _T(' ')) && !bInside)
+			{					
+				break;
+			}
 			pp++;
+		}
+		*pp++ = _T('\0');
+		i = 0;
+		/* remove quotes */
+		while(i < _tcslen(param))
+		{
+			if(param[i] == _T('\"'))
+				memmove(&param[i],&param[i + 1], _tcslen(&param[i]) * sizeof(TCHAR));
+			else
+				i++;
+		}
 
 		if (*pp)
-		{
+		{			
 			WIN32_FIND_DATA f;
 			HANDLE hFind;
-
-			*pp++ = _T('\0');
+			
 			hFind = FindFirstFile (param, &f);
 			x_flag ^= (hFind == INVALID_HANDLE_VALUE) ? 0 : X_EXEC;
 			if (hFind != INVALID_HANDLE_VALUE)