diff --git a/src/dialogs/gnome-cmd-mkdir-dialog.cc b/src/dialogs/gnome-cmd-mkdir-dialog.cc index dda6508..e47cd54 100644 --- a/src/dialogs/gnome-cmd-mkdir-dialog.cc +++ b/src/dialogs/gnome-cmd-mkdir-dialog.cc @@ -101,15 +101,13 @@ static void response_callback (GtkDialog *dialog, int response_id, GnomeCmdDir * GnomeVFSResult result = GNOME_VFS_OK; + guint perm = (GNOME_VFS_PERM_USER_ALL | GNOME_VFS_PERM_GROUP_ALL | GNOME_VFS_PERM_OTHER_ALL) & ~gnome_cmd_data.umask | GNOME_VFS_PERM_USER_WRITE | GNOME_VFS_PERM_USER_EXEC; + for (GSList *i = uri_list; i; i = g_slist_next (i)) { GnomeVFSURI *mkdir_uri = (GnomeVFSURI *) i->data; - result = gnome_vfs_make_directory_for_uri (mkdir_uri, - GNOME_VFS_PERM_USER_READ|GNOME_VFS_PERM_USER_WRITE|GNOME_VFS_PERM_USER_EXEC| - GNOME_VFS_PERM_GROUP_READ|GNOME_VFS_PERM_GROUP_EXEC| - GNOME_VFS_PERM_OTHER_READ|GNOME_VFS_PERM_OTHER_EXEC); - + result = gnome_vfs_make_directory_for_uri (mkdir_uri, perm); if (result!=GNOME_VFS_OK) { diff --git a/src/gnome-cmd-data.cc b/src/gnome-cmd-data.cc index dc97d85..64fdb9c 100644 --- a/src/gnome-cmd-data.cc +++ b/src/gnome-cmd-data.cc @@ -959,6 +959,9 @@ GnomeCmdData::GnomeCmdData() editor = NULL; differ = NULL; term = NULL; + + umask = ::umask(0); + ::umask(umask); } diff --git a/src/gnome-cmd-data.h b/src/gnome-cmd-data.h index 5059477..a26365f 100644 --- a/src/gnome-cmd-data.h +++ b/src/gnome-cmd-data.h @@ -257,6 +257,8 @@ struct GnomeCmdData gint main_win_height; GdkWindowState main_win_state; + mode_t umask; + std::map > tabs; GnomeCmdData();