Project

General

Profile

Actions

Bug #8006

closed

Dir.glob behaves differently on 1.9.3 and 2.0

Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0

Added by gettalong (Thomas Leitner) over 12 years ago. Updated over 11 years ago.

Status:
Closed
Target version:
-
ruby -v:
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
[ruby-core:53108]

Description

=begin
While testing an application of mine with Ruby 2.0 I came across the following problem with Dir.glob where the pattern FOO/BAR/**/* does not match the directory FOO/BAR anymore because the implicit directories '.' and '..' don't get matched anymore.

Used files:

$ find data/webgen/basic_website_template/
data/webgen/basic_website_template/
data/webgen/basic_website_template/ext
data/webgen/basic_website_template/ext/init.rb
data/webgen/basic_website_template/webgen.config
data/webgen/basic_website_template/src
data/webgen/basic_website_template/src/.gitignore

With Ruby 1.9.3-p327:

1.9.3-p327 :001 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_PATHNAME|File::FNM_DOTMATCH|File::FNM_CASEFOLD)
=> ["data/webgen/basic_website_template/.", "data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/.", "data/webgen/basic_website_template/ext/..", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/..", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.", "data/webgen/basic_website_template/src/..", "data/webgen/basic_website_template/src/.gitignore"]
1.9.3-p327 :003 >

With Ruby 2.0.0-p0:

2.0.0-p0 :001 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_PATHNAME|File::FNM_DOTMATCH|File::FNM_CASEFOLD)
=> ["data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.gitignore"]

=end

Updated by gettalong (Thomas Leitner) over 12 years ago Actions #1 [ruby-core:53230]

=begin
After some more experimenting, it seems that the '**' operator doesn't act the same like in 1.9.3:

With Ruby 2.0.0-p0:

2.0.0p0 :017 > Dir.glob('data/webgen/basic_website_template//', File::FNM_DOTMATCH|File::FNM_CASEFOLD)
=> ["data/webgen/basic_website_template/./.", "data/webgen/basic_website_template/./ext", "data/webgen/basic_website_template/./..", "data/webgen/basic_website_template/./webgen.config", "data/webgen/basic_website_template/./src", "data/webgen/basic_website_template/ext/.", "data/webgen/basic_website_template/ext/..", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/../.", "data/webgen/basic_website_template/../passive_sources", "data/webgen/basic_website_template/../..", "data/webgen/basic_website_template/../bundle_template_files", "data/webgen/basic_website_template/../basic_website_template", "data/webgen/basic_website_template/src/.", "data/webgen/basic_website_template/src/..", "data/webgen/basic_website_template/src/.gitignore"]
2.0.0p0 :018 > Dir.glob('data/webgen/basic_website_template/**/*', File::FNM_DOTMATCH|File::FNM_CASEFOLD)
=> ["data/webgen/basic_website_template/ext", "data/webgen/basic_website_template/ext/init.rb", "data/webgen/basic_website_template/webgen.config", "data/webgen/basic_website_template/src", "data/webgen/basic_website_template/src/.gitignore"]

=end

Updated by nagachika (Tomoyuki Chikanaga) over 12 years ago Actions #2 [ruby-core:53238]

  • Assignee set to nobu (Nobuyoshi Nakada)

Hi,

r36903 seems related with this issue.
I'm not sure it is intentional change or not.
nakada san, what do you think?

Updated by gettalong (Thomas Leitner) over 12 years ago Actions #3 [ruby-core:53277]

=begin
For your information, I have fixed this problem in my code, see the ((<commit on Github|URL:https://github.com/gettalong/webgen/commit/8c49da9143569c8b68d6172199e12a9b8274e5bd>)).

Would be good, though, to know whether this is intentional or not.

Thanks!
=end

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago Actions #4

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r43385.
Thomas, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


dir.c: DOTMATCH to current directory

Updated by nobu (Nobuyoshi Nakada) almost 12 years ago Actions #5 [ruby-core:57962]

  • Backport set to 1.9.3: DONTNEED, 2.0.0: REQUIRED

Updated by nagachika (Tomoyuki Chikanaga) over 11 years ago Actions #6 [ruby-core:60620]

  • Backport changed from 1.9.3: DONTNEED, 2.0.0: REQUIRED to 1.9.3: DONTNEED, 2.0.0: DONE

r43385 was backported to uby_2_0_0 branch at r44897.

Actions

Also available in: PDF Atom