[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pukiwiki on Emacs-w3m
- From: amagai-b@xxxxxxx
- Date: Sun, 18 Jan 2004 15:39:08 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 06355
はじめまして. Emacs-w3m を使いはじめて1週間です.
pukiwiki の編集に便利に, というか, 2行以上の日本語入力には Emacs が
なくてはならないので必然的に使いはじめました.
全体的にすばらしい出来ですが, pukiwiki との間で少し問題があるので, 相
談します. 長いメールになってしまってすみません. pukiwiki も w3m 自体
も使いはじめて1週間なのですが. . .
環境は, 次のとおりです.
server
FreeBSD 4.9, apache 1.3.27, php4 4.3.4, pukiwiki 1.4.2
cilent
FreeBSD 4.9, emcws-21.3 (Emacs21.3 に Canna patch のあたったもの)
w3m-emacs21.1.3.80, w3m-img 0.4.1
================================================================
● pukiwiki 編集と更新の衝突:
pukiwiki 編集は, [編集] ボタンをおすと編集画面を GET してきて,
フォームを編集して, [更新] ボタンで POST します. 同じページを
再び編集して, [更新] すると, pukiwiki に「更新の衝突」が発生したと
怒られます.
2度目の編集が, Emacs-w3m のバッファ上のキャッシュを読んで,
server 側に get しないので古い内容に対して編集したと pukiwiki に
みなされるせいです. 編集画面の HTTP Header には
Cache-control: no-cache
Pragma: no-cache
がありますが, Emacs-w3m でキャッシュしてしまうようです.
変数 w3m-cache-articles に ID が格納されていました.
いまは dirty hack でしのいでいますが, もっとスマートな方法があったら
教えてください.
================================================================
*** w3m.el.org Sat Jan 17 09:37:19 2004
--- w3m.el Sat Jan 17 09:40:03 2004
***************
*** 4044,4046 ****
(when (search-forward "\n\n" nil t)
! (let ((header (buffer-substring (point-min) (point))))
(w3m-cache-header url header)
--- 4044,4049 ----
(when (search-forward "\n\n" nil t)
! (let* ((header (buffer-substring (point-min) (point)))
! ;; disable cache if specified. amagai@nue.org 2004.1.16
! (docache (null (or (string-match "^Cache-control: no-cache" header)
! (string-match "^Pragma: no-cache" header) ))))
(w3m-cache-header url header)
***************
*** 4049,4051 ****
(delete-region (point-min) (point))
! (w3m-cache-contents url (current-buffer))
(w3m-w3m-parse-header url header))))))))
--- 4052,4055 ----
(delete-region (point-min) (point))
! (if docache
! (w3m-cache-contents url (current-buffer)) )
(w3m-w3m-parse-header url header))))))))
================================================================
● 添付ファイルのアップロード:
pukiwiki のファイルのアップロード機能が Emacs-w3m からうまく使えません.
w3m 自体を使うとうまくいくので, ethereal で packet dump してみました.
1つ気になる点は, POST の Content-length: の数字より実際に送られる
データの量が 2 octet 大きいことです. データの最後に \r\n が余計に
ついています. Content-length: の値で処理してもらえれば問題ないし,
これが原因かどうか不明なのですが, 気になりました.
最初のパケット
Hypertext Transfer Protocol
POST /pukiwiki/pukiwiki.php HTTP/1.0\r\n
User-Agent: Emacs-w3m/1.3.80 w3m/0.4.1\r\n
Accept: text/*, image/*\r\n
Accept-Encoding: gzip, compress, bzip, bzip2, deflate\r\n
Accept-Language: ja en\r\n
Host: m.n.org\r\n
Content-length: 1605\r\n
Content-Type: multipart/form-data; boundary=--_16393_63206_374643\r\n
Referer: http://m.n.org/pukiwiki/pukiwiki.php?plugin=attach&pcmd=upload&page=w3m%A4%CE%A5%E1%A5%E2\r\n
\r\n
Data (960 bytes)
次のパケット (続きパケット)
Hypertext Transfer Protocol
Data (647 bytes)
0260 29 29 29 29 29 29 29 0a 0d 0a 2d 2d 2d 2d 5f 31 )))))))...----_1
0270 36 33 39 33 5f 36 33 32 30 36 5f 33 37 34 36 34 6393_63206_37464
0280 33 2d 2d 0d 0a 0d 0a 3--....
================================================================
こちらの使いかたが変なようであれば教えてください.
ソースを追いかけきれていないもので. お願いばかりですみません.
天海良治