--- eject.c.orig	Tue Jul 19 13:43:37 2005
+++ eject.c	Tue Jul 19 14:14:24 2005
@@ -122,7 +122,7 @@
 }
 
 /*
- *  check device is exists.
+ *  check whether device exists.
  */
 
 int
@@ -133,8 +133,14 @@
     int sts;
     struct stat sb;
 
-    if (asprintf(device, "/dev/%sc", name) == -1)
-	return sts;
+    if (strncmp("/dev/", name, strlen("/dev/")) == 0) {
+	    if (asprintf(device, "%s", name) == -1)
+		return sts;
+    }
+    else { 
+	    if (asprintf(device, "/dev/%s", name) == -1)
+		return sts;
+    }
     if (vflag || nflag) {
 	printf("%s: using device %s\n", program, device);
     }
@@ -174,11 +180,16 @@
     /* get proper mount information into the list */
     len = strlen(name);
     for (n = 0; n < mnts; n++) {
-	p = rindex(mntbuf[n].f_mntfromname, '/');
-	if (p == NULL) {
-	    continue;
+	if (strncmp("/dev/", name, strlen("/dev/")) == 0) 
+		p = mntbuf[n].f_mntfromname;
+	else {
+		p = rindex(mntbuf[n].f_mntfromname, '/');
+		if (p == NULL)
+		    continue;
+		++p;
 	}
-	for (i = 0, ++p, q = name; *p != '\0' && *q != '\0'; ++i, ++p, ++q) {
+
+	for (i = 0, p, q = name; *p != '\0' && *q != '\0'; ++i, ++p, ++q) {
 	    if (*p != *q) {
 		break;
 	    }


syntax highlighted by Code2HTML, v. 0.9.1