with-temp-buffer に罠を見た。
どーも!
ユニクロのフリースを,昔の感覚で,ついつい L サイズを買って,
家に帰ってきて着てみたら,きつい。あぁ,そうか,
オレは成長したんだ,と,自分の成長に驚いている
whitypig です。
体がでかくなったのは間違いないけど,要するにでぶっただけです。
昔,whitypig さんは書きました。
string-match の逆版。その名も,string-match-backward。
オレの単語復習プログラム内で使っていて,挙動がおかしいところを発見し,
探っていたら見つからず。
そして時間を空けて,もっかいチャレンジしたら,おそらくであろう所を発見し,
それが,string-match-backward。
(string-match-backward "school" "I go to school by bus.") ; => 9 OK (match-string 0 "I go to school by bus.") ; => "" OUCH!! (match-beginning 0) ; => 0 がーん。 (string-match "school" "I go to school by bus.") (match-string 0 "I go to school by bus.") ; => "school" グッジョブ!! (let ((s "I go to school by bus.")) (string-match-backward "school" s) (match-string 0 s)) ; => "chool " これで一応オーケー。
たぶん with-temp-buffer 内でごにょってるから,
べっぱんで評価するといかんちゅうことなのかな。
だから,let 内では temp-buffer が生きている? から,
大丈夫なんだと思う。
Emacs Lisp Manual 読めばわかりそうだけど,
なんか風邪引いたみたいで,熱がある疑いがあるので,
けど,インフルだったら怖いので熱を計らないという,
なんともガキっぽい感じを醸し出しています。
というか,よくこの状態で今まで正常に動作していたなぁと。
どうやって直そうか。。。
見当がつかん。
backward-search はなんとかして使いたいんだよねぇ。。。