buddy: Pavel Cisler <pavel@eazel.com>

2000-11-27  Gene Z. Ragan  <gzr@eazel.com>

	buddy: Pavel Cisler <pavel@eazel.com>

	We now use the "noauto" flag in the fstab entry for the device
	to determine if the volume is removable. This is still imperfect,
	but much better than the enumerated case that was being used before.

	* libnautilus-extensions/nautilus-volume-monitor.c:
	(nautilus_volume_monitor_volume_is_removable),
	(nautilus_volume_monitor_get_removable_volumes),
	(mnttab_add_mount_volume), (mntent_add_mount_volume):

	* libnautilus-extensions/nautilus-volume-monitor.h:
	Added is_removable field to NautilusVolume struct.
This commit is contained in:
Gene Z. Ragan 2000-11-27 23:10:55 +00:00 committed by Gene Ragan
parent 9acb3b5ff4
commit 09f1ee58d8
5 changed files with 30 additions and 72 deletions

View file

@ -1,3 +1,19 @@
2000-11-27 Gene Z. Ragan <gzr@eazel.com>
buddy: Pavel Cisler <pavel@eazel.com>
We now use the "noauto" flag in the fstab entry for the device
to determine if the volume is removable. This is still imperfect,
but much better than the enumerated case that was being used before.
* libnautilus-extensions/nautilus-volume-monitor.c:
(nautilus_volume_monitor_volume_is_removable),
(nautilus_volume_monitor_get_removable_volumes),
(mnttab_add_mount_volume), (mntent_add_mount_volume):
* libnautilus-extensions/nautilus-volume-monitor.h:
Added is_removable field to NautilusVolume struct.
2000-11-27 Darin Adler <darin@eazel.com>
* components/services/install/lib/Makefile.am:

View file

@ -232,39 +232,7 @@ floppy_sort (NautilusVolume *volume1, NautilusVolume *volume2)
gboolean
nautilus_volume_monitor_volume_is_removable (NautilusVolume *volume)
{
/* FIXME bugzilla.eazel.com 2450:
this does not detect removable volumes that are not
CDs or floppies (e.g. zip drives, DVD-ROMs, those weird 20M
super floppies, etc) */
switch (volume->type) {
case NAUTILUS_VOLUME_CDROM:
case NAUTILUS_VOLUME_UDF:
case NAUTILUS_VOLUME_FLOPPY:
return TRUE;
break;
case NAUTILUS_VOLUME_EXT2:
case NAUTILUS_VOLUME_AFFS:
case NAUTILUS_VOLUME_FAT:
case NAUTILUS_VOLUME_HPFS:
case NAUTILUS_VOLUME_MINIX:
case NAUTILUS_VOLUME_MSDOS:
case NAUTILUS_VOLUME_NFS:
case NAUTILUS_VOLUME_PROC:
case NAUTILUS_VOLUME_SMB:
case NAUTILUS_VOLUME_UFS:
case NAUTILUS_VOLUME_UNSDOS:
case NAUTILUS_VOLUME_VFAT:
case NAUTILUS_VOLUME_XENIX:
case NAUTILUS_VOLUME_XIAFS:
return FALSE;
break;
default:
return FALSE;
break;
}
return volume->is_removable;
}
@ -285,8 +253,6 @@ nautilus_volume_monitor_get_removable_volumes (NautilusVolumeMonitor *monitor)
/* Move all floppy mounts to top of list */
return g_list_sort (g_list_reverse (list), (GCompareFunc) floppy_sort);
}
/* nautilus_volume_monitor_get_volume_name
@ -910,7 +876,8 @@ mnttab_add_mount_volume (NautilusVolumeMonitor *monitor, struct mnttab *tab)
volume = g_new0 (NautilusVolume, 1);
volume->fsname = g_strdup (tab->mnt_fstype);
volume->mount_path = g_strdup (tab->mnt_mountp);
volume->is_removable = FALSE;
mounted = FALSE;
if (strcmp (tab->mnt_fstype, "iso9660") == 0) {
@ -985,6 +952,9 @@ mntent_add_mount_volume (NautilusVolumeMonitor *monitor, struct mntent *ent)
mounted = mount_volume_xiafs_add (volume);
}
/* Parse entry for mount option. noauto is being used to assume a removable volume */
volume->is_removable = strstr (ent->mnt_opts, MNTOPT_NOAUTO) != NULL;
if (mounted) {
volume->is_read_only = strstr (ent->mnt_opts, MNTOPT_RO) != NULL;
monitor->details->volumes = g_list_append (monitor->details->volumes, volume);

View file

@ -91,6 +91,7 @@ struct NautilusVolume {
gboolean is_mounted;
gboolean did_mount;
gboolean is_removable;
gboolean is_read_only;
};

View file

@ -232,39 +232,7 @@ floppy_sort (NautilusVolume *volume1, NautilusVolume *volume2)
gboolean
nautilus_volume_monitor_volume_is_removable (NautilusVolume *volume)
{
/* FIXME bugzilla.eazel.com 2450:
this does not detect removable volumes that are not
CDs or floppies (e.g. zip drives, DVD-ROMs, those weird 20M
super floppies, etc) */
switch (volume->type) {
case NAUTILUS_VOLUME_CDROM:
case NAUTILUS_VOLUME_UDF:
case NAUTILUS_VOLUME_FLOPPY:
return TRUE;
break;
case NAUTILUS_VOLUME_EXT2:
case NAUTILUS_VOLUME_AFFS:
case NAUTILUS_VOLUME_FAT:
case NAUTILUS_VOLUME_HPFS:
case NAUTILUS_VOLUME_MINIX:
case NAUTILUS_VOLUME_MSDOS:
case NAUTILUS_VOLUME_NFS:
case NAUTILUS_VOLUME_PROC:
case NAUTILUS_VOLUME_SMB:
case NAUTILUS_VOLUME_UFS:
case NAUTILUS_VOLUME_UNSDOS:
case NAUTILUS_VOLUME_VFAT:
case NAUTILUS_VOLUME_XENIX:
case NAUTILUS_VOLUME_XIAFS:
return FALSE;
break;
default:
return FALSE;
break;
}
return volume->is_removable;
}
@ -285,8 +253,6 @@ nautilus_volume_monitor_get_removable_volumes (NautilusVolumeMonitor *monitor)
/* Move all floppy mounts to top of list */
return g_list_sort (g_list_reverse (list), (GCompareFunc) floppy_sort);
}
/* nautilus_volume_monitor_get_volume_name
@ -910,7 +876,8 @@ mnttab_add_mount_volume (NautilusVolumeMonitor *monitor, struct mnttab *tab)
volume = g_new0 (NautilusVolume, 1);
volume->fsname = g_strdup (tab->mnt_fstype);
volume->mount_path = g_strdup (tab->mnt_mountp);
volume->is_removable = FALSE;
mounted = FALSE;
if (strcmp (tab->mnt_fstype, "iso9660") == 0) {
@ -985,6 +952,9 @@ mntent_add_mount_volume (NautilusVolumeMonitor *monitor, struct mntent *ent)
mounted = mount_volume_xiafs_add (volume);
}
/* Parse entry for mount option. noauto is being used to assume a removable volume */
volume->is_removable = strstr (ent->mnt_opts, MNTOPT_NOAUTO) != NULL;
if (mounted) {
volume->is_read_only = strstr (ent->mnt_opts, MNTOPT_RO) != NULL;
monitor->details->volumes = g_list_append (monitor->details->volumes, volume);

View file

@ -91,6 +91,7 @@ struct NautilusVolume {
gboolean is_mounted;
gboolean did_mount;
gboolean is_removable;
gboolean is_read_only;
};