Never report symbolic links as mountpoints

This commit is contained in:
Pierre Pronchery 2015-10-04 04:04:01 +02:00
parent befb75ad72
commit 953244c454
3 changed files with 25 additions and 7 deletions

View File

@ -26,15 +26,24 @@
/* public */
/* functions */
/* accessors */
int browser_vfs_is_mountpoint(struct stat * lst, dev_t parent);
/* useful */
/* DIR */
DIR * browser_vfs_opendir(char const * filename, struct stat * st);
int browser_vfs_closedir(DIR * dir);
int browser_vfs_lstat(char const * filename, struct stat * st);
struct dirent * browser_vfs_readdir(DIR * dir);
/* Mime */
GdkPixbuf * browser_vfs_mime_icon(Mime * mime, char const * filename,
char const * type, struct stat * lst, struct stat * st,
int size);
char const * browser_vfs_mime_type(Mime * mime, char const * filename,
mode_t mode);
DIR * browser_vfs_opendir(char const * filename, struct stat * st);
struct dirent * browser_vfs_readdir(DIR * dir);
/* stat */
int browser_vfs_lstat(char const * filename, struct stat * st);
int browser_vfs_stat(char const * filename, struct stat * st);
#endif /* !DESKTOP_BROWSER_VFS_H */

View File

@ -1458,8 +1458,8 @@ static void _loop_insert(Browser * browser, GtkTreeIter * iter,
BC_DISPLAY_NAME, display, BC_INODE, inode,
BC_IS_DIRECTORY, S_ISDIR(st->st_mode),
BC_IS_EXECUTABLE, st->st_mode & S_IXUSR,
BC_IS_MOUNT_POINT,
(st->st_dev != browser->refresh_dev) ? TRUE : FALSE,
BC_IS_MOUNT_POINT, browser_vfs_is_mountpoint(lst,
browser->refresh_dev) ? TRUE : FALSE,
BC_PIXBUF_24, icon24,
#if GTK_CHECK_VERSION(2, 6, 0)
BC_PIXBUF_48, icon48, BC_PIXBUF_96, icon96,
@ -1802,8 +1802,8 @@ static void _loop_update(Browser * browser, GtkTreeIter * iter,
BC_PATH, path, BC_DISPLAY_NAME, display,
BC_INODE, inode, BC_IS_DIRECTORY, S_ISDIR(st->st_mode),
BC_IS_EXECUTABLE, st->st_mode & S_IXUSR,
BC_IS_MOUNT_POINT,
(st->st_dev != browser->refresh_dev) ? TRUE : FALSE,
BC_IS_MOUNT_POINT, browser_vfs_is_mountpoint(lst,
browser->refresh_dev) ? TRUE : FALSE,
BC_PIXBUF_24, icon24,
#if GTK_CHECK_VERSION(2, 6, 0)
BC_PIXBUF_48, icon48,

View File

@ -26,6 +26,15 @@
/* public */
/* functions */
/* accessors */
/* browser_vfs_is_mountpoint */
int browser_vfs_is_mountpoint(struct stat * lst, dev_t parent)
{
return (lst->st_dev != parent) ? 1 : 0;
}
/* useful */
/* browser_vfs_lstat */
int browser_vfs_lstat(char const * filename, struct stat * st)
{