Skip to content
Snippets Groups Projects
Commit 4bf2062f authored by Raymond Toy's avatar Raymond Toy
Browse files

Merge branch 'master' into 'master'

Fix: directory followed symlinks with :follow-links nil

I'm on Linux. I'm looking at a directory that contains both physical directories and symbolic links to directories.

### What I would expect: 
```common-lisp
(directory "/path/to/dir/*.*" :check-for-subdirs t :follow-links t :truenamep nil)
```

will show both (because it will show everything in that directory) and mark both types as directories with trailing slashes.
```common-lisp
(directory "/path/to/dir/*.*" :check-for-subdirs t :follow-links nil :truenamep nil)
```

will again show all files but only add trailing slashes to the physical subdirectories.

### What actually happens
Both commands give me the same output. That is because `directory` calls `unix:unix-file-kind` to categorise files into directory/link/etc., which internally calls `stat`. It will only use `lstat` if the second, optional argument is passed as **t**. In default mode (the way it currently is) symlinks to directories will be assigned the type :directory regardless of the flags passed to `directory`.

I believe the change contained in this merge request is thus the correct fix.

See merge request !15
parents 3d18025d 17499591
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment