--- a/components/mc/patches/infopanel-follow-symlinks.patch Thu Jan 28 23:01:44 2016 -0800
+++ b/components/mc/patches/infopanel-follow-symlinks.patch Fri Jan 29 13:11:39 2016 +0100
@@ -2,36 +2,38 @@
Synopsis: Info panel should follow symlinks
Bug record: https://www.midnight-commander.org/ticket/3278
-diff -Naur mc-4.8.13.old/src/filemanager/mountlist.c mc-4.8.13.new/src/filemanager/mountlist.c
---- mc-4.8.13.old/src/filemanager/mountlist.c 2014-09-02 11:23:58.000000000 +0200
-+++ mc-4.8.13.new/src/filemanager/mountlist.c 2014-09-26 17:07:08.135044849 +0200
-@@ -1598,18 +1600,22 @@
+diff -Naur mc-4.8.15.orig/src/filemanager/mountlist.c mc-4.8.15/src/filemanager/mountlist.c
+--- mc-4.8.15.orig/src/filemanager/mountlist.c 2015-11-06 10:11:09.000000000 +0100
++++ mc-4.8.15/src/filemanager/mountlist.c 2015-11-13 10:04:32.267994401 +0100
+@@ -1704,11 +1704,15 @@
my_statfs (struct my_statfs *myfs_stats, const char *path)
{
#ifdef HAVE_INFOMOUNT_LIST
+ const char *rpath;
size_t len = 0;
struct mount_entry *entry = NULL;
- struct mount_entry *temp = mc_mount_list;
+ GSList *temp;
struct fs_usage fs_use;
+ if ((rpath = realpath(path, NULL)) == NULL)
+ rpath = path;
+
- while (temp)
+ for (temp = mc_mount_list; temp != NULL; temp = g_slist_next (temp))
{
- size_t i;
+ struct mount_entry *me;
+@@ -1716,8 +1720,8 @@
- i = strlen (temp->me_mountdir);
-- if (i > len && (strncmp (path, temp->me_mountdir, i) == 0))
-- if (!entry || (path[i] == PATH_SEP || path[i] == '\0'))
-+ if (i > len && (strncmp (rpath, temp->me_mountdir, i) == 0))
-+ if (!entry || (rpath[i] == PATH_SEP || rpath[i] == '\0'))
- {
- len = i;
- entry = temp;
-@@ -1620,7 +1626,7 @@
- if (entry)
+ me = (struct mount_entry *) temp->data;
+ i = strlen (me->me_mountdir);
+- if (i > len && (strncmp (path, me->me_mountdir, i) == 0) &&
+- (entry == NULL || IS_PATH_SEP (path[i]) || path[i] == '\0'))
++ if (i > len && (strncmp (rpath, me->me_mountdir, i) == 0) &&
++ (entry == NULL || IS_PATH_SEP (rpath[i]) || rpath[i] == '\0'))
+ {
+ len = i;
+ entry = me;
+@@ -1727,7 +1731,7 @@
+ if (entry != NULL)
{
memset (&fs_use, 0, sizeof (struct fs_usage));
- get_fs_usage (entry->me_mountdir, NULL, &fs_use);
@@ -39,7 +41,7 @@
myfs_stats->type = entry->me_dev;
myfs_stats->typename = entry->me_type;
-@@ -1672,6 +1678,11 @@
+@@ -1781,6 +1785,11 @@
myfs_stats->nfree = 0;
myfs_stats->nodes = 0;
}