[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: w3m-exec-filter



From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> さん曰く
Subject: [emacs-w3m:00104] w3m-exec-filter (was: Some change.)
Message-ID: <mpar90az78w.fsf_-_@azalea.kuee.kyoto-u.ac.jp>
Date: 07 Mar 2001 10:40:31 +0900

>> On 07 Mar 2001 09:25:52 +0900
>> 「土」== tsuchiya@pine.kuee.kyoto-u.ac.jp (TSUCHIYA Masatoshi) said as follows:

白井> (2) w3m で "Username:" と "Password:" を聞いてくるのは、絶対に一
白井> 番最初で聞いてくる(ような ^_^;)ので、filter で "Username:"
白井> "Password:" の処理をするときに、process の出力の (point-min) か
白井> ら (match-end 0) までを delete-region するようにした。

土> 残念ながら、これはうまく動きません。なぜなら、本文中にプロンプトに一致
土> する文字列が含まれていることを考慮していないからです。

土> なんとか誤魔化す方法を発見しました。

丁度似たようなことをやっていたところです。土屋さんの方がきれい。

土> ## て言うか、自分で問題を出して、自分で解いてりゃ世話ないよなあ…。

## 世の中そんなもんですって。

土> 要点は、process-send-string が成功するかしないかを、実際にプロンプトの
土> 文字列なのか否かの判断に利用する、ということです。更に、上記のプロンプ
土> トが現れるのは *必ず* 先頭であることを強く仮定すれば、かなり安全にプロ
土> ンプトを取り除けそうです。

これの判定って、

	     ((and (looking-at
		    "\\(\nWrong username or password\n\\)?Username: Password: ")
		   (= (match-beginning 0) (point-min)))
                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

でいいんじゃないですか?その方が安全でしょう。

# 納得されたら変更しておいていただけませんか > 土屋さん

土> # やっぱり、バックエンドとして利用されることを考慮していないプログラム
土> # をバックエンドとして使うのは、どうしても無理があるなあ…。

### もともと、elisp から動かすことを考慮していないコマンドを動か
### すのって、こういう作業の繰り返しだと思う。無理といえば無理な
### んだけど。

-- 
白井秀行@絶対、寺西さんが絵を出してくださると思っていました :-)