diff_two_paths bug?

Splitting off from my other message-- I've noticed a couple of oddities
that I think must be coming from the diff_two_paths function.

When I want a relative path for a symlink to a file that is in the same
directory as the link, the shortest relative path ought to be something
like  /home/me/a.link -> a.file or
/home/me/a.link -> ./a.file. Instead, diff_two_paths gives me
/home/me/a.link -> ../me/a.file.  Not serious, just annoying.

Second, I experimented with the 'stable symlinks' option on the
copy/move dialog.  Stable symlinks seems to be completely undocumented,
so I'm not entirely sure what it is supposed to do.  (If I find out,
I'll  write a few lines to add to the docs)  It looks like it is
supposed to resolve a relative link into the correct relative path from
the new location. It does that, unless I got to the source directory via
a higher level symlink.  

For example: I keep a lot of downloaded files in /usr/local/ftp/pub/.
For convenience, I have a link to it from my home directory--
  /home/akm/pub -> /usr/local/ftp/pub

If I (1) navigate to /usr/local/ftp/pub in MC and choose a symlink--
  /usr/local/ftp/pub/stuff/a.link -> ../otherstuff/a.file
(2) copy the link to /home/akm/ and check 'stable symlinks'
the symlink gets converted correctly--
  /home/akm/alink -> ../../usr/local/ftp/pub/otherstuff/a.file

But when I navigate to the same place via the symlink from my home
directory and do the same thing, the converted symlink gets garbled--

  /home/akm/alink -> ../../usr/local/ftp/usr/local/ftp/pub/otherstuff/a.file

I suspect that both problems are coming from diff_two_paths, and they
may be related.  Unfortunately I don't know enough C to fix it.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]