なかだです。

At Wed, 7 Feb 2001 14:46:21 +0900
"K.Kosako" <kosako / sofnec.co.jp> wrote:
> >   これで気づいたんですが、%q!\!! が "!" じゃなくて "\\!" にな
> > るのは、こういうもんでしたっけ。
> シングルクォートの場合は、
> \\と\'以外はバックスラッシュ記法がない
> と、「オブジェクト指向スクリプト言語Ruby」
> などに書かれています。

  いやデリミタをエスケープできるかどうかということです。

> p "\!"   # => "!"
> p '\!'   # => "\\!"
  p %q'\'' # => "'"
  p %q!\!! # => "\\!"

  最後のは "!" になってもいいような気がしませんか。まぁ互換性
なくなる部分もあるので、こうすべきだとはいいませんが。

  それはそうと、importenv.rb は別にエスケープしたり展開したり
する必要はないですね。これで十分。


Index: importenv.rb =================================================================== RCS file: /home/cvs/ruby/src/ruby/lib/importenv.rb,v retrieving revision 1.2 diff -u -2 -p -r1.2 importenv.rb --- importenv.rb 2000/02/23 05:23:12 1.2 +++ importenv.rb 2001/02/07 06:25:50 @@ -11,8 +11,8 @@ for k,v in ENV next unless /^[a-zA-Z][_a-zA-Z0-9]*/ =~ k eval <<EOS - $#{k} = %q!#{v}! + $#{k} = v trace_var "$#{k}", proc{|v| - ENV[%q!#{k}!] = v; - $#{k} = %q!#{v}! + ENV[%q!#{k}!] = v + $#{k} = v if v == nil untrace_var "$#{k}"
-- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦