Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Try canonicalisation when converting File to Dir
Without this canonicalisation, if the directory is a symbolic link to another directory, later at `reorient_target_path` [1], File and path argument look like: - self: File { name: "." ext: None path: "/tmp/test2" metadata: {...} parent_dir: Some({ contents: vec![] path: "/tmp/test2" }) is_all_all: true } - path: "test1" ...where /tmp/test2 is a symlink to /tmp/test1 and command being used is `exa -laa /tmp/test2`. So the result of `dir.join(&*path)` becomes `/tmp/test2/test1`, which doesn't exist. The canonicalisation also makes the behaviours of `exa -laa /tmp/test2` and `exa -laa /tmp/test2/` consistent, where `.` is not treated as a symlink in either case. This is a bit different from coreutils `ls` though. Closes ogham#952. [1] https://github.com/ogham/exa/blob/42659f93456d9ff7cc1096cbd84d778ede26d76e/src/fs/file.rs#L215-L217
- Loading branch information