Blob Blame History Raw
--- nautilus-2.13.2/src/file-manager/fm-directory-view.c.format	2005-12-02 08:41:23.000000000 -0500
+++ nautilus-2.13.2/src/file-manager/fm-directory-view.c	2005-12-02 08:46:44.000000000 -0500
@@ -5864,6 +5864,8 @@
 	NautilusFile *file;
 	GList *selection, *l;
 	GnomeVFSDrive *drive;
+        char *device_path;
+        char *cmdline;
 	FMDirectoryView *view;
 
         view = FM_DIRECTORY_VIEW (data);
@@ -5874,9 +5876,16 @@
 
 		if (nautilus_file_has_drive (file)) {
 			drive = nautilus_file_get_drive (file);
+			device_path = gnome_vfs_drive_get_device_path (drive);
 			if (gnome_vfs_drive_get_device_type (drive) == GNOME_VFS_DEVICE_TYPE_FLOPPY) {
-				g_spawn_command_line_async ("gfloppy", NULL);
+				cmdline = g_strconcat ("gfloppy ", device_path, NULL);
 			}
+			else {
+				cmdline = g_strconcat ("userformat ", device_path, NULL);
+			}
+ 			g_spawn_command_line_async (cmdline, NULL);
+                        g_free (cmdline);
+                        g_free (device_path);
 		}
 	}	
 	nautilus_file_list_free (selection);
@@ -6607,16 +6616,18 @@
 	} else if (nautilus_file_has_drive (file)) {
 		drive = nautilus_file_get_drive (file);
 		*show_eject = eject_for_type (gnome_vfs_drive_get_device_type (drive));
+                if ((gnome_vfs_drive_get_device_type (drive) == GNOME_VFS_DEVICE_TYPE_FLOPPY &&
+                   g_find_program_in_path ("gfloppy")) ||
+                   g_find_program_in_path ("userformat")) {
+                       *show_format = TRUE;
+                }
+
 		if (gnome_vfs_drive_is_mounted (drive)) {
 			*show_unmount = TRUE;
+			*show_format = FALSE;
 		} else {
 			*show_mount = TRUE;
 		}
-
-                if (gnome_vfs_drive_get_device_type (drive) == GNOME_VFS_DEVICE_TYPE_FLOPPY &&
-		    g_find_program_in_path ("gfloppy")) {
-			*show_format = TRUE;
-		}
 	} else if (nautilus_file_is_nautilus_link (file)) {
 		uri = nautilus_file_get_activation_uri (file);
 		if (uri != NULL &&