[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:516]call-process when using argument-editing



>>>>> In <u3eh9uswb.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> 
>>>>>	"himi" = Miyashita Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
himi> だーれも、答えないなぁ。^_^;;;

  himi さん、ありがとうございます。

;; himi さんが Mail を読んでくれているうちにっと...

himi> Argument Editingを知るための最も良い方法
himi> 「とにかく試してみよう。」
himi> (define-process-argument-editing "/movemail\\.exe\\'"
himi>   (lambda (x) (setq foo
himi>                     (general-process-argument-editing-function x nil t t nil t t))))
himi> として、fooの中を後から見てみましょう。^_^;;;

  お!実行したコマンドラインがそのまま見れる。

himi> まさに、テストが、すべてを教えてくれるでしょう。

  なんですが...いまいち call-process から呼んだ時、きちんと call-process が
  返って来る時と、返って来ない時の差がまだ良く分からないです。
  今、試した事は...

(define-process-argument-editing "/movemail\.exe\\'"
  (lambda (x) (setq foo
                    (general-process-argument-editing-function x nil t t nil t t))))

  で foo を見ると

   c:\\meadow\\1.00\\bin\\movemail.exe -p po:ichikawa c:\\ichikawa\\Mail
   \\gnus-crashbox password

  となってまして...さらに

(define-process-argument-editing "/wlprt32\\.exe$"
  (lambda (x) (setq foo
    (general-process-argument-editing-function x nil t))))

  で foo を見ると

  e:\\Winlprt\\wlprt32.exe c:/ichikawa/.emacs

  となってました。

  あ、argument の "/" と "\\" が違いますね。
  確かに、後で試した e:\\Winlprt\\wlprt32.exe c:/ichikawa/.emacs はこのまま 
  DOS 窓の Command Line で打ったらきちんとしたファイルが印刷できませんね。

himi> 要はArgument Editing ってのは、
himi> argv[] -> 文字列
himi> への変換をするためのものです。

himi> で、文字列 -> argv[]
himi> へ変換するやり方は、アプリケーションごとに違うのが問題です。

himi> 1.... 'msvc
himi> MSVCRT?.DLL or LIBC.LIBを用いて、argv[]を取る

himi>     VisualC++で開発された、argv[]を用いるアプリケーション
himi> 		Meadowに付属するすべてのアプリケーションはこれに該当します。
himi> 2.... 'cygnus
himi> CYGWIN.DLL を用いて、argv[]を取る

himi>     Cygwin32に付属するすべてのアプリケーションはこれに該当します。

himi> 3.... nil
himi> 自前で文字列をパースする。

himi>     Windowsに付属するかなりのアプリケーションはこれに該当します。

  しかし、疑問なのが call-process が返って来る場合と返って来ない場合の差異な
  のです。
  もう少し movemail で試してみます。

-- 
Tatsuya Ichikawa : Epson Software Development Lab, Inc. Nagano , Japan.
# PGP Public Key : See below url. ;-)
  http://www.icat.or.jp/cgi-bin/pgpsearchkey.pl?op=get&search=0x0A2D6599
       E-mail    : <ichikawa@xxxxxxxxxxxxxx><t-ichi@xxxxxxxxxxxxxxxxx>