DRIVE_FindDriveRoot() always checked from drive A: to Z: for each
path component even if a match already occurred.

diff --git a/files/drive.c b/files/drive.c
index dfe2b87..bbe68da 100644
--- a/files/drive.c
+++ b/files/drive.c
@@ -65,7 +65,7 @@
     char      label_read[12]; /* drive label as read from device */
     DWORD     serial_conf;    /* drive serial number as cfg'd in wine.conf */
     DRIVETYPE type;      /* drive type */
-    UINT    flags;     /* drive flags */
+    UINT      flags;     /* drive flags */
     dev_t     dev;       /* unix device number */
     ino_t     ino;       /* unix inode number */
 } DOSDRIVE;
@@ -338,6 +338,7 @@
            {
                rootdrive = drive;
                *path = p;
+	       break;
            }
         }
 
@@ -1090,8 +1091,8 @@
  *           GetDriveType16   (KERNEL.136)
  * This function returns the type of a drive in Win16. 
  * Note that it returns DRIVE_REMOTE for CD-ROMs, since MSCDEX uses the
- * remote drive API. The returnvalue DRIVE_REMOTE for CD-ROMs has been
- * verified on Win3.11 and Windows 95. Some programs rely on it, so don't
+ * remote drive API. The return value DRIVE_REMOTE for CD-ROMs has been
+ * verified on Win 3.11 and Windows 95. Some programs rely on it, so don't
  * do any pseudo-clever changes.
  *
  * RETURNS
@@ -1396,7 +1397,7 @@
        if (DOSDrives[drive].flags & DRIVE_CASE_SENSITIVE)
          *flags|=FS_CASE_SENSITIVE;
        if (DOSDrives[drive].flags & DRIVE_CASE_PRESERVING)
-         *flags|=FS_CASE_IS_PRESERVED ;
+         *flags|=FS_CASE_IS_PRESERVED;
       }
     if (fsname) {
     	/* Diablo checks that return code ... */