Forum: Ruby-core [ruby-trunk - Bug #8006][Open] Dir.glob behaves differently on 1.9.3 and 2.0

Posted by gettalong (Thomas Leitner) (Guest)
on 2013-03-02 16:12
(Received via mailing list)
Issue #8006 has been reported by gettalong (Thomas Leitner).

----------------------------------------
Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0
https://bugs.ruby-lang.org/issues/8006

Author: gettalong (Thomas Leitner)
Status: Open
Priority: Low
Assignee:
Category: core
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]


=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
Posted by gettalong (Thomas Leitner) (Guest)
on 2013-03-08 12:17
(Received via mailing list)
Issue #8006 has been updated by gettalong (Thomas Leitner).


=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
----------------------------------------
Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0
https://bugs.ruby-lang.org/issues/8006#change-37389

Author: gettalong (Thomas Leitner)
Status: Open
Priority: Low
Assignee:
Category: core
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]


=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
Posted by nagachika (Tomoyuki Chikanaga) (Guest)
on 2013-03-08 19:06
(Received via mailing list)
Issue #8006 has been updated by nagachika (Tomoyuki Chikanaga).

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?
----------------------------------------
Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0
https://bugs.ruby-lang.org/issues/8006#change-37399

Author: gettalong (Thomas Leitner)
Status: Open
Priority: Low
Assignee: nobu (Nobuyoshi Nakada)
Category: core
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]


=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
Posted by gettalong (Thomas Leitner) (Guest)
on 2013-03-10 12:15
(Received via mailing list)
Issue #8006 has been updated by gettalong (Thomas Leitner).


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

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

Thanks!
=end
----------------------------------------
Bug #8006: Dir.glob behaves differently on 1.9.3 and 2.0
https://bugs.ruby-lang.org/issues/8006#change-37452

Author: gettalong (Thomas Leitner)
Status: Open
Priority: Low
Assignee: nobu (Nobuyoshi Nakada)
Category: core
Target version:
ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]


=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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.