[#18440] racc segv revisited — "Akinori MUSHA" <knu@...>

 次のバグの件なんですが、現時点では原因究明を含めて未解決という

24 messages 2002/10/02
[#18617] Re: racc segv revisited — "Akinori MUSHA" <knu@...> 2002/11/02

At Wed, 2 Oct 2002 23:19:59 +0900,

[ruby-dev:18574] Re: avoid substituting $(s) in a template of LIBPATHFLAG

From: Ryo HAYASAKA <ryoh@...>
Date: 2002-10-23 18:21:26 UTC
List: ruby-dev #18574
早坂@北陸先端です.

対応ありがとうございます.

In message <200210231721.g9NHLff29471@sharui.nakada.kanuma.tochigi.jp>,
nobu.nakada@nifty.ne.jp wrote:

> > NetBSD では, LIBPATHFLAG が " -L%1$s -Wl,-R%1$s" となるんですが, 下の
> > diff の gsub のところで " -L%1$(s) -Wl,-R%1$(s)" に置き換えられてしま
> > うので, 文法エラーとなってしまうようです.
> これは"$$"という形でエスケープするようにしたつもりだったんです
> が、御指摘通りconfig.statusから変換するときの処理とconfigure.in
> でのエスケープ自体を忘れてました。
> 
> これでどうでしょうか。

$&.chop とかしないと, エスケープのままになっちゃいますね.

Index: mkconfig.rb
===================================================================
RCS file: /src/ruby/mkconfig.rb,v
retrieving revision 1.26
diff -d -p -u -r1.26 mkconfig.rb
--- mkconfig.rb 23 Oct 2002 17:40:14 -0000      1.26
+++ mkconfig.rb 23 Oct 2002 18:18:13 -0000
@@ -39,7 +39,7 @@ File.foreach "config.status" do |line|
     next if $install_name and /^RUBY_INSTALL_NAME$/ =~ name
     next if $so_name and /^RUBY_SO_NAME$/ =~  name
     v = "  CONFIG[\"" + name + "\"] = " +
-      val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1?"$(#{$1})":$&}.dump + "\n"
+      val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1?"$(#{$1})":$&.chop}.dump + "\n"
     if fast[name]
       v_fast << v
     else

--
Ryo HAYASAKA (早坂 良)  <ryoh@jaist.ac.jp>
http://www.jaist.ac.jp/%7Eryoh/
Japan Advanced Institute of Science and Technology (JAIST)

In This Thread