[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: inputタグの処理
>>>>> In [emacs-w3m : No.09185] 青田直大さん wrote:
> Googleで検索をしていた時に動作がおかしい所を見つけました。
> 環境
> w3m version w3m/0.5.1+cvs-1.969
> emacs-w3m-version "1.4.162"
> GNU Emacs 22.0.92.1 (arm-sharp-linux-gnu, X toolkit) of 2007-01-15 on zaurus
> inputタグにname属性が存在し、type=textの時、
> 1.valueに<fooのような文字列が含まれると、入力欄の<以降が表示されない。
> 2.valueに<foo>のような文字列が含まれると、<foo>が表示されない。
> 3.valueが&lt;fooの時(<fooで検索)、<fooと表示される。
> ただし、一度編集すると<fooと表示されるようになる。
お知らせありがとうございます。Google 検索オプションのページで確
認しました。
> name属性が存在しないinputタグでは、これらの現象が起こらないので、
> 原因はw3m-form.elのw3m-form-replace、w3m-form-resumeあたりにあるのでしょうか?
> valueの先頭に<があると、入力欄を変更できなくなり困るので、
> とりあえず入力欄が動作するようになるパッチを添付します。
> このパッチには1の場合に、入力欄の後に</pre_int>と表示される問題があります。
以下のようにしたものを CVS commit しました。もし問題があれば (メー
リングリストのみなさんも) ご指摘お願いします。ところで、青田さん
のお名前のローマ字表記はこれであっていますか?
2007-02-05 Naohiro Aota <nao.aota@xxxxxxxxx>
* w3m.el (w3m-fontify): Don't delete things like tags in forms of
type=text as well as of type=textarea.
--- w3m.el~ 2007-02-05 05:37:02 +0000
+++ w3m.el 2007-02-05 22:50:24 +0000
@@ -3748,9 +3748,11 @@
;; Remove other markups.
(goto-char (point-min))
(while (re-search-forward "</?[A-Za-z_][^>]*>" nil t)
- (let ((fid (get-text-property (match-beginning 0) 'w3m-form-field-id)))
- (unless (and fid (string-match "/type=textarea/" fid))
- (delete-region (match-beginning 0) (match-end 0)))))
+ (let* ((start (match-beginning 0))
+ (fid (get-text-property start 'w3m-form-field-id)))
+ (if (and fid (string-match "/type=text\\(?:area\\)?/" fid))
+ (goto-char (1+ start))
+ (delete-region start (match-end 0)))))
;; Decode escaped characters (entities).
(w3m-decode-entities 'reserve-prop)
(when w3m-use-form