Handle partition-less ARC paths
Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/arcname.c

Modified: branches/xen/reactos/boot/freeldr/freeldr/reactos/arcname.c
--- branches/xen/reactos/boot/freeldr/freeldr/reactos/arcname.c	2005-05-17 06:17:35 UTC (rev 15371)
+++ branches/xen/reactos/boot/freeldr/freeldr/reactos/arcname.c	2005-05-17 07:34:17 UTC (rev 15372)
@@ -64,17 +64,27 @@
 		/*
 		 * hard disk path:
 		 *  multi(0)disk(0)rdisk(x)partition(y)\path
+                 * or 
+		 *  multi(0)disk(0)rdisk(x)\path
+                 * (for partition-less disks)
 		 */
 		p = p + 6;
 		*BootDrive = atoi(p) + 0x80;
 		p = strchr(p, ')');
-		if ((p == NULL) || (strnicmp(p, ")partition(", 11) != 0))
+		if (p == NULL)
 			return FALSE;
-		p = p + 11;
-		*BootPartition = atoi(p);
-		p = strchr(p, ')');
-		if ((p == NULL) || (*BootPartition == 0))
-			return FALSE;
+		if (strnicmp(p, ")partition(", 11) == 0)
+		{
+			p = p + 11;
+			*BootPartition = atoi(p);
+			p = strchr(p, ')');
+			if ((p == NULL) || (*BootPartition == 0))
+				return FALSE;
+		}
+		else
+		{
+			*BootPartition = 0xff;
+		}
 		p++;
 	}
 	else
@@ -82,6 +92,11 @@
 		return FALSE;
 	}
 
+	if ('\\' != *p)
+	{
+		return FALSE;
+	}
+
 	strcpy(BootPath, p);
 
 	return TRUE;