N.Katoh
typer_jp****@yahoo*****
2005年 12月 18日 (日) 15:56:52 JST
加藤です。今更ではありますが。 On Tue, 13 Dec 2005 08:57:06 +0900 あき <attin****@kk*****> wrote: > あきです。 > > > 竹添です。 > > > > Makamaka wrote: > > > まかまかです。 > > > > > > > > >>- ログイン状態の表示 > > >> http://fswiki.poi.jp/wiki.cgi?page=BugTrack%2Dplugin%2F116 > > > > > > を3.5にコミットしました。 > > > > ありがとうございます。 > > > > > オリジナルのソースplugin::loginstate::LoginName、 > > > plugin::loginstate::LoginSatteでオプション指定 > > > された文字列中の'\@'を削除する処理があるのですが、 > > > 理由がわかりませんでした(コードは残してあります)。 > > > > うーん、なんででしょうねぇ。 > > サニタイズの一種だというのは何となく分かるのですが、具体的にどういった > パターンを防ごうとしているのかがよく分かりません。 > この処理が必要なのだとすれば、同様の処理を他の機能でも行うべきなのでは? > と気になります。 私もサニタイズかなとか色々考えたんですが、一番しっくりくるのは、 s/\\(\\|\?)|(\\\@)|(\?)/ というのはtypoで、 s/\\(\\|\?)|(\\)|(\?)/ というのが正しくて、"\"によるエスケープ処理かなと。 で、それが正しいのなら、この部分はもう少し簡単にできて、 $val =~ s/\\(.)|\?/$1 ? $1 : $name/ge; で良いと思います。行末に"\"がある場合に動作が異なりますが。 #エスケープ処理って難しいですね(笑) -- typer <typer_jp****@yahoo*****> like perl, stay FreeBSD http://freebsd.g.hatena.ne.jp/TransFreeBSD/ use fswiki http://aaa-www.net/~typer/cgi-bin/wiki.cgi/diary and named Noboru Katoh <typer****@chive*****>