[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3181

From: "sho-h (Sho Hashimoto)" <sho-h@n...>
Date: Sun, 19 Aug 2012 00:53:23 +0900
Subject: [ruby-reference-manual:3181] [るりまプロジェクト - Bug #5501][Closed] 環境変数RUBYLIB のMS-DOS系の区切り文字がおかしい


Issue #5501 has been updated by sho-h (Sho Hashimoto).

Status changed from Assigned to Closed
% Done changed from 0 to 100

以下の方針で修正しました。close します。間違った修正であれば指摘してやってくださいませ。

* セパレータは確かに ; だと思われるため修正(r5327)
* %HOME% は %HOMEDRIVE%%HOMEPATH% に修正(r5328)

以下のように確認しました。

前者は push_include まで降りると、PATH_SEP_CHAR(MS-DOS だと ;) のみで区切って $: に push しており、最初の動作確認と符合したため修正しました。(他のセパレータの存在を考慮した記述にはしませんでした)

後者は意味があるのですが、set RUBYLIB=...するタイミングでは、影響し得ないため修正しました。HOME 環境変数が存在しない場合、init_env という関数によって ENV["HOME"] が代入される仕組みのようです($ set HOME $ ruby -e 'p ENV["HOME"]' してみてください)。Linux 側との互換のため?ではないかと想像しています。この点については ML を参照したかったのですが、今はタイムアウトするので諦めました。どなたかご存知の方いらしたら教えてください。しかし、コマンドプロンプトを叩くタイミングでは影響できないため、どのような理由にしろ意味がなかったです。そのため、init_env の処理にできるだけ合わせて、%HOMEDRIVE%%HOMEPATH% としました。

----------------------------------------
Bug #5501: 環境変数RUBYLIB のMS-DOS系の区切り文字がおかしい
https://bugs.ruby-lang.org/issues/5501#change-28930

Author: azarashi (Hiroshi Koyama)
Status: Closed
Priority: Normal
Assignee: sho-h (Sho Hashimoto)
Category: doc
Target version: 
reporter: 
ruby_version: 


http://doc.ruby-lang.org/ja/1.9.2/doc/spec=2fenvvars.html
> MS-DOS系

> 
>       set RUBYLIB=%HOME%\ruby\lib:\opt\ruby\lib

区切り文字は ":" ではなくて ";" が正しいのではないかしら。
RUBYLIB だけでなく、その上に書かれている RUBYPATH の区切り文字も気になりますぽよ。


C:\Windows\System32>set RUBYLIB=c:\lib:d:\lib

C:\Windows\System32>irb
irb(main):001:0> puts $:
c:\lib:d:\lib
C:/Users/Azarashi/bin/ruby-1.9.2/lib/ruby/site_ruby/1.9.1
(省略)
=> nil
irb(main):002:0> exit

C:\Windows\System32>set RUBYLIB=c:\lib;d:\lib

C:\Windows\System32>irb
irb(main):001:0> puts $:
c:\lib
d:\lib
C:/Users/Azarashi/bin/ruby-1.9.2/lib/ruby/site_ruby/1.9.1
(省略)
=> nil



-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]