Issue #7374 has been updated by h.shirosaki (Hiroshi Shirosaki).

Status changed from Closed to Assigned

It seems if the last part of the path contains * or ?, FindFirstFileW should not be used since FindFirstFileW expands wildcard.

Examples:
File.expand_path("foo/ab*c")
File.expand_path("foo/ab?c")

Code in file.c uses strpbrk(s, "*?") for that.
https://github.com/ruby/ruby/blob/trunk/file.c#L3141
----------------------------------------
Bug #7374: File.expand_path resolving to first file/dir instead of absolute path
https://bugs.ruby-lang.org/issues/7374#change-33000

Author: mdube / arcane-technologies.com (Martin Dubé)
Status: Assigned
Priority: High
Assignee: luislavena (Luis Lavena)
Category: core
Target version: 2.0.0
ruby -v: ruby 1.9.3p327 (2012-11-10) [i386-mingw32]


=begin
(({File.expand_path("./*", "c:)"}))
will give "c:/$recycle.bin" as result instead of "c:/*"

(({File.expand_path("./*", "c:/temp)"}))
will give "c:/temp/." as result instead of "c:/temp/*"

It looks like the first directory entry is returned instead of the absolute path.


=end


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