G
Gour
Hi!
While attempting to compile and tweak extconf.rb for wxruby bindings
I've discovered that backticking gives different results in Linux and in
MinGW & MSYS environment.
Here is the result:
ggd@gaura:~> ruby -v
ruby 1.8.0 (2003-07-24) [i686-linux]
ggd@gaura:~> cat t.rb
puts `wx-config --cxx`
ggd@gaura:~> ruby t.rb
c++
ggd@gaura:~> irb
irb(main):001:0> `wx-config --cxx`
=> "c++\n"
The same is if I use:
ggd@gaura:~> cat t.rb
puts %x(wx-config --cxx)
However under Win platform & MSYS environment which uses POSIX notation:
ggd@GGD ~
$ ruby -v
ruby 1.8.0 (2003-07-24) [i386-mingw32]
ggd@GGD ~
$ ruby t.rb
t.rb:1:in ``': No such file or directory - wx-config --cxx (Errno::ENOENT)
from t.rb:1
ggd@GGD ~
$ irb
irb(main):001:0> `wx-config --cxx`
`wx-config --cxx`
Errno::ENOENT: No such file or directory - wx-config --cxx
from (irb):1:in ``'
from (irb):1
$ wx-config --cxx
c++
The same error if I use %x delimiter instead of backtick.
Is it a Ruby bug?
The Ruby cannot find shell script wx-config, although it is in the PATH (/mingw/bin).
Here is the output for PATH variable:
from MSYS (shell):
$ echo $PATH
.:/usr/local/bin:/mingw/bin:/bin:/mingw/BIN:/mingw/LIB:/j/DOS:/j/MERGE:/c/WINDOWS:/c/WINDOWS/COMMAND:.
from Ruby:
$ ruby t.rb
.;C:\MSYS\1.0\local\bin;c:\MinGW\bin;C:\MSYS\1.0\BIN;c:\MinGW\BIN;c:\MinGW\LIB;j:\DOS;j:\MERGE;c:\WINDOWS;c:\WINDOWS\COMMAND;.
from irb:
$ irb
irb(main):001:0> ENV['PATH']
ENV['PATH']
=> ".;C:\\MSYS\\1.0\\local\\bin;c:\\MinGW\\bin;C:\\MSYS\\1.0\\BIN;c:\\MinGW\\BIN;c:\\MinGW\\LIB;j:\\DOS;j:\\MERGE;c:\\WINDOWS;c:\\WINDOWS\\COMMAND;."
irb(main):002:0>
Is it normal behaviour?
Under Linux, all three cases gives identical result.
Sincerely,
Gour
While attempting to compile and tweak extconf.rb for wxruby bindings
I've discovered that backticking gives different results in Linux and in
MinGW & MSYS environment.
Here is the result:
ggd@gaura:~> ruby -v
ruby 1.8.0 (2003-07-24) [i686-linux]
ggd@gaura:~> cat t.rb
puts `wx-config --cxx`
ggd@gaura:~> ruby t.rb
c++
ggd@gaura:~> irb
irb(main):001:0> `wx-config --cxx`
=> "c++\n"
The same is if I use:
ggd@gaura:~> cat t.rb
puts %x(wx-config --cxx)
However under Win platform & MSYS environment which uses POSIX notation:
ggd@GGD ~
$ ruby -v
ruby 1.8.0 (2003-07-24) [i386-mingw32]
ggd@GGD ~
$ ruby t.rb
t.rb:1:in ``': No such file or directory - wx-config --cxx (Errno::ENOENT)
from t.rb:1
ggd@GGD ~
$ irb
irb(main):001:0> `wx-config --cxx`
`wx-config --cxx`
Errno::ENOENT: No such file or directory - wx-config --cxx
from (irb):1:in ``'
from (irb):1
$ wx-config --cxx
c++
The same error if I use %x delimiter instead of backtick.
Is it a Ruby bug?
The Ruby cannot find shell script wx-config, although it is in the PATH (/mingw/bin).
Here is the output for PATH variable:
from MSYS (shell):
$ echo $PATH
.:/usr/local/bin:/mingw/bin:/bin:/mingw/BIN:/mingw/LIB:/j/DOS:/j/MERGE:/c/WINDOWS:/c/WINDOWS/COMMAND:.
from Ruby:
$ ruby t.rb
.;C:\MSYS\1.0\local\bin;c:\MinGW\bin;C:\MSYS\1.0\BIN;c:\MinGW\BIN;c:\MinGW\LIB;j:\DOS;j:\MERGE;c:\WINDOWS;c:\WINDOWS\COMMAND;.
from irb:
$ irb
irb(main):001:0> ENV['PATH']
ENV['PATH']
=> ".;C:\\MSYS\\1.0\\local\\bin;c:\\MinGW\\bin;C:\\MSYS\\1.0\\BIN;c:\\MinGW\\BIN;c:\\MinGW\\LIB;j:\\DOS;j:\\MERGE;c:\\WINDOWS;c:\\WINDOWS\\COMMAND;."
irb(main):002:0>
Is it normal behaviour?
Under Linux, all three cases gives identical result.
Sincerely,
Gour