[Mew-Win32 02096] Re: [Mew-dist 11135] Re: gnuserv
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
1999年 11月 1日 (月) 12:44:41 JST
白井です。
From: Masaru Fukunaka <fukunaka at example.com> さん曰く
Subject: [Mew-Win32 02095] Re: [Mew-dist 11135] Re: gnuserv
Message-ID: <19991101120925E.0 at example.com>
Date: Mon, 01 Nov 1999 12:09:25 +0900 (JST)
福中> > 元記事は Mew-dist に流されましたが、Windows にのみ関係する話題なので
福中> > To: mew-win32 at example.com
福中> > cc: mew-dist at example.com
福中> > にしました。
福中> > 問題無ければ、このスレッドは mew-dist からはずしても良いかと思います。
福中>
福中> というわけでこちらに移動してきました.みなさんよろしくお願いします.
こちらこそ、よろしくお願いします。
福中> > (ドライブとディレクトリ)\gnudoitw.exe "(gnuserv-mailto \"%1\")"
福中>
福中> としてみましたがうまくいきません.
福中>
福中> mini buffer には
福中>
福中> error in process filter: End of file during parsing [2 times]
福中>
福中> と出てきます.
実は私も一緒なのです。だから、
From: Hideyuki SHIRAI (白井秀行) <shirai at example.com> 曰く
Subject: [Mew-Win32 02091] Re: [Mew-dist 11120] gnuserv
Message-ID: <19991031191906O.shirai at example.com>
Date: Sun, 31 Oct 1999 19:19:06 +0900 (JST)
白井> じつは、IE はうまくいっていない私でした。普段は NetScape なので
白井> あんまり追求していません。
だったのです。だれも何にも言わないから、これは世界中で私一人だと
思っていました。:-)
1. dos窓で
gnudoitw "(mew-url-mailto \"hoge at example.com\")"
はうまくいく。
2. エクスプローラの [表示]-[フォルダオプション] のファイルタイプの設定で
(ドライブとディレクトリ)\gnudoitw.exe "(mew-url-mailto \"%1\")"
だと、
福中> error in process filter: End of file during parsing [2 times]
となるなら、きっと私と一緒の原因でしょう。mew-url-mailto でなく
てもなんでも一緒です。Win-NT4.0SP5 も 95OSR2.1 も同じでした。;_;
その後いろいろ調べてみたのですが、"*sever*" という buffer を作り、
そこをみると、どんな string が gnudoitw から来たかわかるのですが、
その中身が *なんと*
○ 180 (server-eval '(progn (mew-url-mailto "hoge at example.com") ))^D
× 180 (server-eval '(progn (mew-url-mailto "hoge at example.com ))^D
というように『")』が落ちていることがわかりました。
# これじゃ、エクスプローラで何をやっても動かないぞぉぉぉぉ。
というわけで、とってもアドホックなのですが、gnuserv.el の
server-process-filter() を改造して『×』パターンなら『")』を無理
やりつけるようにしてしまいました。おそらく、正解は他にあると思う
のですが、とりあえず、です。
# 正解は、meadow-users-jp ML でも聞いてみますので、それまでのつ
# なぎと考えてください。だから、オリジナルの gnuserv.el は取って
# おいてくださいね。
--
白井秀行 (mailto:shirai at example.com)
--- gnuserv.el.old Mon Nov 01 10:20:53 1999
+++ gnuserv.el Mon Nov 01 12:39:16 1999
@@ -127,22 +127,35 @@
(setq server-string (concat server-string string))
(if (string-match "\^D$" server-string) ; requests end with ctrl-D
(if (string-match "^[0-9]+" server-string) ; client request id
- (progn
- (server-log server-string)
- (let ((header (read-from-string server-string)))
- (setq current-client (car header))
- (condition-case oops
- (eval (car (read-from-string server-string
- (cdr header))))
- (error (setq server-string "")
- (server-write-to-client current-client oops)
- (setq current-client nil)
- (signal (car oops) (cdr oops)))
- (quit (setq server-string "")
- (server-write-to-client current-client oops)
- (setq current-client nil)
- (signal 'quit nil)))
- (setq server-string "")))
+ (let ((str0 server-string) ;; add. shirai 11/1/1999 why? ;_;
+ str1 str2)
+ (if (string-match "\"" str0)
+ (progn
+ (setq str1 (substring str0 0 (match-end 0)))
+ (setq str0 (substring str0 (match-end 0)))
+ (if (and (not (string-match "\"" str0))
+ (string-match " ))" str0))
+ (progn
+ (setq str2 (concat (substring str0 0 (match-beginning 0))
+ "\") ))"))
+ (setq server-string (concat str1
+ str2
+ (substring str0 (match-end 0))))))))
+ (server-log server-string)
+ (let ((header (read-from-string server-string)))
+ (setq current-client (car header))
+ (condition-case oops
+ (eval (car (read-from-string server-string
+ (cdr header))))
+ (error (setq server-string "")
+ (server-write-to-client current-client oops)
+ (setq current-client nil)
+ (signal (car oops) (cdr oops)))
+ (quit (setq server-string "")
+ (server-write-to-client current-client oops)
+ (setq current-client nil)
+ (signal 'quit nil)))
+ (setq server-string "")))
(progn ;error string from server
(server-process-display-error server-string)
(setq server-string "")))))
Mew-win32 メーリングリストの案内