[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
inputタグの処理
- From: "青田直大" <nao.aota@xxxxxxxxx>
- Date: Tue, 6 Feb 2007 02:49:30 +0900
- X-ml-name: emacs-w3m
- X-mail-count: 09185
青田と申します。
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と表示されるようになる。
name属性が存在しないinputタグでは、これらの現象が起こらないので、
原因はw3m-form.elのw3m-form-replace、w3m-form-resumeあたりにあるのでしょうか?
valueの先頭に<があると、入力欄を変更できなくなり困るので、
とりあえず入力欄が動作するようになるパッチを添付します。
このパッチには1の場合に、入力欄の後に</pre_int>と表示される問題があります。
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.1248
diff -u -r1.1248 w3m.el
--- w3m.el 5 Feb 2007 05:37:02 -0000 1.1248
+++ w3m.el 5 Feb 2007 17:30:53 -0000
@@ -3749,7 +3749,8 @@
(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))
+ (unless (and fid (or (string-match "/type=textarea/" fid)
+ (string-match "/type=text/" fid)))
(delete-region (match-beginning 0) (match-end 0)))))
;; Decode escaped characters (entities).
(w3m-decode-entities 'reserve-prop)