Add new thing to cd.
Make cd pr* working
Modified: trunk/reactos/subsys/system/cmd/internal.c

Modified: trunk/reactos/subsys/system/cmd/internal.c
--- trunk/reactos/subsys/system/cmd/internal.c	2005-05-20 10:55:55 UTC (rev 15431)
+++ trunk/reactos/subsys/system/cmd/internal.c	2005-05-20 12:55:09 UTC (rev 15432)
@@ -157,6 +157,11 @@
 	LPTSTR dir;		/* pointer to the directory to change to */
 	LPTSTR lpOldPath;
 	size_t size, str_len;
+	WIN32_FIND_DATA FileData; 
+    HANDLE hSearch; 
+    DWORD dwAttrs;  
+    BOOL fFinished = FALSE; 
+ 
 
 	/*Should we better declare a variable containing _tsclen(dir) ? It's used a few times,
 	  but on the other hand paths are generally not very long*/
@@ -242,6 +247,49 @@
 
 	if (!SetCurrentDirectory (dir))
 	{
+
+	    hSearch = FindFirstFile(dir, &FileData); 
+        if (hSearch == INVALID_HANDLE_VALUE) 
+        { 
+	        ConOutFormatMessage(GetLastError());
+			free (lpOldPath);
+		    lpOldPath = NULL;
+            return 1;
+		}
+
+		
+        while (!fFinished) 
+        { 
+            dwAttrs = GetFileAttributes(FileData.cFileName); 
+#ifdef _DEBUG
+			DebugPrintf(_T("Search found folder :%s\n"),FileData.cFileName);
+#endif
+            if ((dwAttrs & FILE_ATTRIBUTE_DIRECTORY)) 
+            {
+			  FindClose(hSearch);		     
+	          // change folder
+			 if (!SetCurrentDirectory (FileData.cFileName))
+			 {
+				 ConOutFormatMessage(GetLastError());
+			     free (lpOldPath);
+		         lpOldPath = NULL;
+				 return 1;
+			 }
+				
+             
+			 return 0;
+             }
+        
+             else if (!FindNextFile(hSearch, &FileData)) 
+            {             
+		     FindClose(hSearch);
+			 ConOutFormatMessage(GetLastError());
+			 free (lpOldPath);
+		     lpOldPath = NULL;
+			 return 1;
+             }
+        }  
+
 		//ErrorMessage (GetLastError(), _T("CD"));
 		ConOutFormatMessage(GetLastError());