Hi,

At Sun, 22 May 2005 04:41:25 +0900,
noreply / rubyforge.org wrote in [ruby-core:05065]:
> The 'facade' requirement can be removed and that module can
> be inlined if you don't like the dependency.  It's only about
> 20 lines of code.

Where is it?

> require "Win32API" if File::ALT_SEPARATOR

File::ALT_SEPARATOR is not Windows specific.

>    def initialize(path)
>       @sep = File::ALT_SEPARATOR || File::SEPARATOR
> 
>       # Convert forward slashes to backslashes on Win32
>       path.tr!("/",@sep) if File::ALT_SEPARATOR

This changes the argument.

>    def root
>       dir = "."   
>       if File::ALT_SEPARATOR
>          # We only want the portion up to the first '\0'
>          if @@PathStripToRoot.call(self) > 0
>             dir = self.split(0.chr).first

This is destructive operation.

>    def +(string)
>       unless string.kind_of?(Pathname)
>          string = Pathname.new(string)
>       end
> 
>       # Any path plus "." is the same directory
>       return self if string == "."
>       
>       # Use the builtin PathAppend method if on Windows - much easier
>       if File::ALT_SEPARATOR
>          buf = 0.chr * MAX_PATH
>          buf[0..self.length-1] = self
>          @@PathAppend.call(buf, string << 0.chr)

Also.

And, I doubt about necessity of Win32API.

-- 
Nobu Nakada