re-enable utf8 for udf.. why was it disabled?

SVN revision: 54071
This commit is contained in:
Carsten Haitzler 2010-11-01 02:09:34 +00:00
parent 3ea8084f72
commit 2c400712f8
1 changed files with 12 additions and 5 deletions

View File

@ -898,12 +898,14 @@ _e_fm_main_dbus_volume_mount(E_Volume *v)
const char *mount_point; const char *mount_point;
Eina_List *opt = NULL; Eina_List *opt = NULL;
if (!v || v->guard || !v->mount_point || strncmp(v->mount_point, "/media/", 7)) if ((!v) || (v->guard) || (!v->mount_point) ||
(strncmp(v->mount_point, "/media/", 7)))
return; return;
mount_point = v->mount_point + 7; mount_point = v->mount_point + 7;
// printf("mount %s %s [fs type = %s]\n", v->udi, v->mount_point, v->fstype); // printf("mount %s %s [fs type = %s]\n", v->udi, v->mount_point, v->fstype);
// for vfat and ntfs we want the uid mapped to the user mounting, if we can
if ((!strcmp(v->fstype, "vfat")) || if ((!strcmp(v->fstype, "vfat")) ||
(!strcmp(v->fstype, "ntfs")) (!strcmp(v->fstype, "ntfs"))
) )
@ -912,6 +914,9 @@ _e_fm_main_dbus_volume_mount(E_Volume *v)
opt = eina_list_append(opt, buf); opt = eina_list_append(opt, buf);
} }
// force utf8 as the encoding - e only likes/handles utf8. its the
// pseudo-standard these days anyway for "linux" for intl text to work
// everywhere. problem is some fs's use differing options
if ((!strcmp(v->fstype, "vfat")) || if ((!strcmp(v->fstype, "vfat")) ||
(!strcmp(v->fstype, "ntfs")) || (!strcmp(v->fstype, "ntfs")) ||
(!strcmp(v->fstype, "iso9660")) (!strcmp(v->fstype, "iso9660"))
@ -921,17 +926,19 @@ _e_fm_main_dbus_volume_mount(E_Volume *v)
opt = eina_list_append(opt, buf2); opt = eina_list_append(opt, buf2);
} }
else if ((!strcmp(v->fstype, "fat")) || else if ((!strcmp(v->fstype, "fat")) ||
(!strcmp(v->fstype, "jfs")) (!strcmp(v->fstype, "jfs")) ||
// (!strcmp(v->fstype, "udf")) (!strcmp(v->fstype, "udf"))
) )
{ {
snprintf(buf2, sizeof(buf2), "iocharset=utf8"); snprintf(buf2, sizeof(buf2), "iocharset=utf8");
opt = eina_list_append(opt, buf2); opt = eina_list_append(opt, buf2);
} }
v->guard = ecore_timer_add(E_FM_MOUNT_TIMEOUT, _e_fm_main_dbus_vol_mount_timeout, v); v->guard = ecore_timer_add(E_FM_MOUNT_TIMEOUT,
_e_fm_main_dbus_vol_mount_timeout, v);
v->op = e_hal_device_volume_mount(_e_fm_main_dbus_conn, v->udi, mount_point, v->op = e_hal_device_volume_mount(_e_fm_main_dbus_conn, v->udi, mount_point,
v->fstype, opt, _e_fm_main_dbus_cb_vol_mounted, v); v->fstype, opt,
_e_fm_main_dbus_cb_vol_mounted, v);
eina_list_free(opt); eina_list_free(opt);
} }