View | Details | Raw Unified | Return to bug 119900
Collapse All | Expand All

(-)file_not_specified_in_diff (-5 / +12 lines)
Line  Link Here
0
-- src/manager.c
0
++ src/manager.c
Lines 1417-1422 Link Here
1417
	MOUNT_UID        = (1 << 14),
1417
	MOUNT_UID        = (1 << 14),
1418
	MOUNT_UMASK      = (1 << 15),
1418
	MOUNT_UMASK      = (1 << 15),
1419
	MOUNT_UTF8       = (1 << 16),
1419
	MOUNT_UTF8       = (1 << 16),
1420
	MOUNT_FMASK      = (1 << 17),
1420
};
1421
};
1421
1422
1422
static struct {
1423
static struct {
Lines 1426-1432 Link Here
1426
	{ "codepage=",  MOUNT_CODEPAGE   },  /* vfat */
1427
	{ "codepage=",  MOUNT_CODEPAGE   },  /* vfat */
1427
	{ "data=",      MOUNT_DATA       },  /* ext3 */
1428
	{ "data=",      MOUNT_DATA       },  /* ext3 */
1428
	{ "dirsync",    MOUNT_DIRSYNC    },
1429
	{ "dirsync",    MOUNT_DIRSYNC    },
1429
	{ "dmask=",     MOUNT_DMASK      },  /* ntfs */
1430
	{ "dmask=",     MOUNT_DMASK      },  /* vfat, ntfs */
1430
	{ "flush",      MOUNT_FLUSH      },  /* vfat */
1431
	{ "flush",      MOUNT_FLUSH      },  /* vfat */
1431
	{ "iocharset=", MOUNT_IOCHARSET  },  /* vfat, iso9660 */
1432
	{ "iocharset=", MOUNT_IOCHARSET  },  /* vfat, iso9660 */
1432
	{ "mode=",      MOUNT_MODE       },  /* iso9660 */
1433
	{ "mode=",      MOUNT_MODE       },  /* iso9660 */
Lines 1440-1445 Link Here
1440
	{ "uid=",       MOUNT_UID        },  /* vfat, ntfs, udf, iso9660 */
1441
	{ "uid=",       MOUNT_UID        },  /* vfat, ntfs, udf, iso9660 */
1441
	{ "umask=",     MOUNT_UMASK      },  /* vfat, ntfs, udf */
1442
	{ "umask=",     MOUNT_UMASK      },  /* vfat, ntfs, udf */
1442
	{ "utf8",       MOUNT_UTF8       },  /* vfat, iso9660 */
1443
	{ "utf8",       MOUNT_UTF8       },  /* vfat, iso9660 */
1444
	{ "fmask=",     MOUNT_FMASK      },  /* vfat, ntfs */
1443
};
1445
};
1444
1446
1445
1447
Lines 1640-1646 Link Here
1640
			guint32 opts = 0;
1642
			guint32 opts = 0;
1641
			char uid[32];
1643
			char uid[32];
1642
			size_t i, j;
1644
			size_t i, j;
1643
			
1645
1644
			if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) {
1646
			if ((moptions = libhal_device_get_property_strlist (hal_ctx, udi, "volume.mount.valid_options", NULL))) {
1645
				for (i = 0; moptions[i]; i++) {
1647
				for (i = 0; moptions[i]; i++) {
1646
					for (j = 0; j < G_N_ELEMENTS (mount_options); j++) {
1648
					for (j = 0; j < G_N_ELEMENTS (mount_options); j++) {
Lines 1669-1676 Link Here
1669
						g_ptr_array_add (options, "sync");
1671
						g_ptr_array_add (options, "sync");
1670
				}
1672
				}
1671
				
1673
				
1672
				if (opts & MOUNT_SHORTNAME)
1674
				if (opts & MOUNT_FMASK) {
1673
					g_ptr_array_add (options, "shortname=winnt");
1675
					mode_t mask = umask (0);
1676
					umask (mask);
1677
					char mask_str[12];
1678
					sprintf (mask_str, "fmask=%#o", mask | 0111);
1679
					g_ptr_array_add (options, mask_str);
1680
				}
1674
			} else if (!strcmp (fstype, "iso9660")) {
1681
			} else if (!strcmp (fstype, "iso9660")) {
1675
				/* only care about uid= and iocharset= */
1682
				/* only care about uid= and iocharset= */
1676
			} else if (!strcmp (fstype, "udf")) {
1683
			} else if (!strcmp (fstype, "udf")) {

Return to bug 119900