Issue #9648 has been updated by Hiroshi Shirosaki.


Usaku NAKAMURA wrote:
> 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.

I thought 1. is spec on Windows because old version ruby, `dir` command and `FindFirstFile` behavior is same.
I agree to change behavior unixen systems.


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

* 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/