Issue #9648 has been updated by Usaku NAKAMURA.


Nobuyoshi Nakada wrote:
> In that case, what should it return?
> 
> 1. ignores it and globs as if it were not a symlink
> 2. matches nothing, since there is no parent directory of a root directory
> 3. treat the parent directory same as the root directory, like unixen systems

First I think it should returns the directory that the symlink exists (maybe 1 ?),
but now I think it should be 3.


> > Skipping `READDIR` usage for this case solves the bug.
> 
> I'm not sure what is a *"bug"* yet.

I've not tested the patch yet, but I think there are some *bug*s now.

1. glob should return the root itself for the parent of the root, like unixen.
2. glob should return the parent of the symlinked directory instead of the parent of the symlink, like unixen, too.


----------------------------------------
Bug #9648: Dir.glob('../*') shows unexpected result in a symbolic linked directory on Windows
https://bugs.ruby-lang.org/issues/9648#change-46349

* Author: Hiroshi Shirosaki
* Status: Assigned
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* Category: 
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-03-17 trunk 45356) [x64-mingw32]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED
----------------------------------------
`Dir.glob('../*')` shows unexpected result if current directory is a symbolic linked directory on Windows.
This issue seems to be introduced by r44802.

The following is a test case.


~~~
C:\foo>mklink /D bar V:\
symbolic link created for bar <<===>> V:\

C:\foo>cd bar

C:\foo\bar>ruby -ve "p Dir.glob('../*')"
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
["../a", "../bar"]

C:\foo\bar>\rubyinstaller\sandbox\ruby21_build\miniruby.exe -ve "p Dir.glob('../*')"
ruby 2.2.0dev (2014-02-04 trunk 45356) [x64-mingw32]
[]


C:\foo\bar>dir ..
 Volume in drive C is OS
 Volume Serial Number is 6629-B36B

 Directory of C:\foo

2014/03/17  18:58    <DIR>          .
2014/03/17  18:58    <DIR>          ..
2014/03/17  18:45                 6 a
2014/03/17  18:58    <SYMLINKD>     bar [V:\]
               1 File(s)              6 bytes
               3 Dir(s)  81,915,052,032 bytes free
~~~



-- 
https://bugs.ruby-lang.org/