プロセスフィルターは、(対応する)プロセスからの標準出力を受け取る関数のことで す。プロセスがフィルターを持つ場合、そのプロセスからの標準出力は全て、(バッ ファに挿入されたり、捨てられたりすることなく) そのフィルターに送られます。
フィルター関数は、(対応するプロセスとその出力であるストリングの) 2 つのアー ギュメントを受け取らなくてはいけません。この関数は(その後)その出力で何をしよう とかまいません。
この(訳注:フィルター)関数への出力はどのような大きさのかたまりであってもかまい ません。 2回同じものを繰返し出力する unix コマンドは、最初は 200 文字の 1つの ストリングを、2 回目は 40 文字の 5 つのストリングを送ってかまいません。
Function: set-process-filter process filter
この関数は、フィルター関数 filter をプロセス process に与えます。 filter が nil の場合、そのプロセスはフィルターを持たないことになります。
(もっと良い例が必要!!)
(defun keep-output (process output) (setq kept (cons output kept))) => keep-output (setq kept nil) => nil (set-process-filter (get-process "shell") 'keep-output) => keep-output (process-send-string "shell" "ls ~/other\n") => nil kept => ("lewis@slug[8] % " "FINAL-W87-SHORT.MSS backup.otl kolstad.mss~ address.txt backup.psf kolstad.psf backup.bib~ david.mss resume-Dec-86.mss~
backup.err dabid.psf resume-Dec.psf backup.mss dland syllabus.mss " "#backupsmss# backup.mss~ kolstad.mss ")
Function: process-filter process
この関数は、 process のフィルター関数か (フィルター関数を持たない場合) nil を返します。