Chris,

I don't think this is a Ruby thing, but comes from the different ways
Ruby gets the information. getpwuid gets your password entry from
the password database. Dir["/"] reads the content of the root directory.
The env, well, you know.

I'm not sure what the Mac implementation of Dir.pwd does, but it could
not be any of the above. One BSD implementation I knew had a very
clunky method: it would progressively read the entries in .., ../.., ../../.., etc, and match the inode numbers with ., .., ../.., etc. I suspect that Apple
has replaced that, as most unices have, with a kernel implementation,
but I can't see it documented in /usr/share/man/man2.

https://github.com/ruby/ruby/blob/trunk/dir.c says it's implemented using
my_getcwd, which is probably just a wrapper for getcwd (man 3 getcwd)
from the Apple standard library. Try a little C program and tell us what it
says:

#include <unistd.h>
void main()
{
        char buf[1024];
        getcwd(buf, sizeof(buf));
        puts(buf);
        exit(0);
}

Clifford Heath.

On 16/01/2011, at 10:59 PM, Chris Berkhout wrote:

Hi All,

Today I was surprised to find that the "U" in Users is uppercase
(which I consider correct) in:

Etc.getpwuid.dir => "/Users/chrisberkhout"
Dir.entries("/") => [..., "Users", ...]
ENV['PWD']       => "/Users/chrisberkhout"

But lowercase in:

Dir.pwd               => "/users/chrisberkhout"
File.expand_path('.') => "/users/chrisberkhout"

Also,
- Manually changing into the uppercase directory doesn't help.
- Deeper directories with uppercase letters seem fine.
- Other root-level directories with uppercase letters seem fine.

Anyone else run into this issue?

Cheers,
Chris

--
You received this message because you are subscribed to the Google Groups "Ruby or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected] . For more options, visit this group at http://groups.google.com/group/rails-oceania?hl=en .


--
You received this message because you are subscribed to the Google Groups "Ruby or 
Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rails-oceania?hl=en.

Reply via email to