From: nobu.nakada@... Date: 2002-06-22T15:46:26+09:00 Subject: [ruby-dev:17546] Re: broken string when unterminated "#{". なかだです。 At Sat, 22 Jun 2002 02:30:46 +0900, Yukihiro Matsumoto wrote: > |> もう、エラーにしちゃって「直してね」でいいような気がしてきま > |> した。誰かから「互換性はどうした」とか突っ込まれそう。^^;;; > | > |対応してみました。一番外側の終端と同じものがエスケープされてる > |と警告を出して、それ以降エスケープを取り除きます。 > | > |$ ./i686-linux/miniruby1 -e 'p %|x#{%\|\|}|' > |-e:1: warning: escaped | inside string found > |"x" > > うーん、ぱわふる。 > > コミットしてください。今回の修正コードは見てないけど、前のも > のを見るかぎり大丈夫そうです。問題があれば、こちらで直せると > 思うし。 こういうのを経由して次の文字を読むようにしてみたんですが、考え てみたらこれじゃpushback()やpeek()が動きませんね。 static int nextq() { int c = nextc(); if (c == '\\' && in_string == -2) c = read_escape(); return c; } 無理にread_escape()を使わずに単純にもう一回nextc()をするだけで も充分かもしれませんが、なんとなく中途半端な感じ。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦