mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-23 22:16:16 +01:00
Merge branch '2934-false-null-file-attributes' into 'main'
glocalfile: Set various file attributes if their value is FALSE Closes #2934 See merge request GNOME/glib!3313
This commit is contained in:
commit
1e4a8d3271
@ -845,10 +845,10 @@ get_mount_info (GFileInfo *fs_info,
|
||||
G_UNLOCK (mount_info_hash);
|
||||
}
|
||||
|
||||
if (mount_info & MOUNT_INFO_READONLY &&
|
||||
g_file_attribute_matcher_matches (matcher,
|
||||
if (g_file_attribute_matcher_matches (matcher,
|
||||
G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
|
||||
g_file_info_set_attribute_boolean (fs_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
|
||||
g_file_info_set_attribute_boolean (fs_info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY,
|
||||
(mount_info & MOUNT_INFO_READONLY));
|
||||
|
||||
if (g_file_attribute_matcher_matches (matcher,
|
||||
G_FILE_ATTRIBUTE_FILESYSTEM_REMOTE))
|
||||
|
@ -2051,17 +2051,18 @@ _g_local_file_info_get (const char *basename,
|
||||
basename != NULL && basename[strlen (basename) - 1] == '~' &&
|
||||
(stat_ok && S_ISREG (_g_stat_mode (&statbuf))));
|
||||
#else
|
||||
if (statbuf.attributes & FILE_ATTRIBUTE_HIDDEN)
|
||||
g_file_info_set_is_hidden (info, TRUE);
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_STANDARD_IS_BACKUP, FALSE);
|
||||
|
||||
if (statbuf.attributes & FILE_ATTRIBUTE_ARCHIVE)
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_ARCHIVE, TRUE);
|
||||
g_file_info_set_is_hidden (info, (statbuf.attributes & FILE_ATTRIBUTE_HIDDEN));
|
||||
|
||||
if (statbuf.attributes & FILE_ATTRIBUTE_SYSTEM)
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM, TRUE);
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_ARCHIVE,
|
||||
(statbuf.attributes & FILE_ATTRIBUTE_ARCHIVE));
|
||||
|
||||
if (statbuf.reparse_tag == IO_REPARSE_TAG_MOUNT_POINT)
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_MOUNTPOINT, TRUE);
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_SYSTEM,
|
||||
(statbuf.attributes & FILE_ATTRIBUTE_SYSTEM));
|
||||
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_IS_MOUNTPOINT,
|
||||
(statbuf.reparse_tag == IO_REPARSE_TAG_MOUNT_POINT));
|
||||
|
||||
if (statbuf.reparse_tag != 0)
|
||||
_g_file_info_set_attribute_uint32_by_id (info, G_FILE_ATTRIBUTE_ID_DOS_REPARSE_POINT_TAG, statbuf.reparse_tag);
|
||||
@ -2182,9 +2183,9 @@ _g_local_file_info_get (const char *basename,
|
||||
}
|
||||
|
||||
if (stat_ok && parent_info && parent_info->device != 0 &&
|
||||
_g_file_attribute_matcher_matches_id (attribute_matcher, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT) &&
|
||||
(_g_stat_dev (&statbuf) != parent_info->device || _g_stat_ino (&statbuf) == parent_info->inode))
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT, TRUE);
|
||||
_g_file_attribute_matcher_matches_id (attribute_matcher, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT))
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_UNIX_IS_MOUNTPOINT,
|
||||
(_g_stat_dev (&statbuf) != parent_info->device || _g_stat_ino (&statbuf) == parent_info->inode));
|
||||
|
||||
if (stat_ok)
|
||||
get_access_rights (attribute_matcher, info, path, &statbuf, parent_info);
|
||||
|
@ -558,7 +558,8 @@ g_resource_file_query_filesystem_info (GFile *file,
|
||||
if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE))
|
||||
g_file_info_set_attribute_string (info, G_FILE_ATTRIBUTE_FILESYSTEM_TYPE, "resource");
|
||||
|
||||
if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY)) g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
|
||||
if (g_file_attribute_matcher_matches (matcher, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY))
|
||||
g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_FILESYSTEM_READONLY, TRUE);
|
||||
|
||||
g_file_attribute_matcher_unref (matcher);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user