$NetBSD: patch-aa,v 1.2 2008/12/25 05:33:20 hasso Exp $ --- src/gnome-mount-properties-view.c.orig 2008-02-25 23:55:05 +0200 +++ src/gnome-mount-properties-view.c 2008-12-24 22:38:36 +0200 @@ -35,7 +35,7 @@ #include #include -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) #include #include #include @@ -59,7 +59,31 @@ struct _GnomeMountPropertiesViewClass { GtkVBoxClass base_class; }; -#ifdef __FreeBSD__ +#ifdef __NetBSD__ +static struct opt { + int o_opt; + const char *o_name; +} optnames[] = { + { MNT_ASYNC, "async" }, + { MNT_NOCOREDUMP, "nocoredump" }, + { MNT_NODEV, "nodev" }, + { MNT_NODEVMTIME, "nodevmtime" }, + { MNT_NOEXEC, "noexec" }, + { MNT_NOSUID, "nosuid" }, + { MNT_RDONLY, "rdonly" }, + { MNT_SYNCHRONOUS, "sync" }, + { MNT_UNION, "union" }, + { MNT_NOATIME, "noatime" }, + { MNT_SYMPERM, "symperm" }, + { MNT_SOFTDEP, "softdep" }, +#ifdef MNT_LOG + { MNT_LOG, "log" }, +#endif + { MNT_IGNORE, "hidden" }, + { 0, NULL } +}; +#endif +#if defined(__FreeBSD__) || defined(__DragonFly__) static struct opt { int o_opt; const char *o_name; @@ -79,8 +103,12 @@ static struct opt { { MNT_NOCLUSTERW, "noclusterw" }, { MNT_SUIDDIR, "suiddir" }, { MNT_SOFTDEP, "soft-updates" }, +#ifdef MNT_MULTILABEL { MNT_MULTILABEL, "multilabel" }, +#endif +#ifdef MNT_ACLS { MNT_ACLS, "acls" }, +#endif #ifdef MNT_GJOURNAL { MNT_GJOURNAL, "gjournal" }, #endif @@ -337,7 +365,7 @@ populate_ui_from_gconf (GnomeMountProper g_object_unref (gconf_client); } -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__DragonFly__) struct mtab_handle { struct statfs *mounts; @@ -345,6 +373,14 @@ struct mtab_handle int iter; }; #endif +#ifdef __NetBSD__ +struct mtab_handle +{ + struct statvfs *mounts; + int n_mounts; + int iter; +}; +#endif /* borrowed from gtk/gtkfilesystemunix.c in GTK+ on 02/23/2006 */ static void @@ -454,7 +490,7 @@ out: static gboolean mtab_open (gpointer *handle) { -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) struct mtab_handle *mtab; mtab = g_new0 (struct mtab_handle, 1); @@ -475,7 +511,7 @@ mtab_open (gpointer *handle) static gboolean mtab_next (gpointer handle, char **device_file, char **mount_options, char **mount_fstype) { -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) struct mtab_handle *mtab = handle; if (mtab->iter < mtab->n_mounts) { @@ -484,7 +520,11 @@ mtab_next (gpointer handle, char **devic GString *optstr; optstr = g_string_new(""); +#if defined(__NetBSD__) + flags = mtab->mounts[mtab->iter].f_flag & MNT_VISFLAGMASK; +#else flags = mtab->mounts[mtab->iter].f_flags & MNT_VISFLAGMASK; +#endif for (o = optnames; flags && o->o_opt; o++) { if (flags & o->o_opt) { @@ -517,7 +557,7 @@ mtab_next (gpointer handle, char **devic static void mtab_close (gpointer handle) { -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) g_free (handle); #else fclose (handle);