From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: =?UTF-8?B?TG91aXMgSMO2Zmxlcg==?= Newsgroups: gmane.emacs.devel Subject: Adding a filter function to a shell process Date: Thu, 05 Mar 2015 02:16:37 +0100 Message-ID: <54F7AE75.7050203@mathematek.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1425518226 25991 80.91.229.3 (5 Mar 2015 01:17:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 5 Mar 2015 01:17:06 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Mar 05 02:16:57 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YTKPI-0008Jv-07 for ged-emacs-devel@m.gmane.org; Thu, 05 Mar 2015 02:16:56 +0100 Original-Received: from localhost ([::1]:47654 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTKPH-0002NU-2I for ged-emacs-devel@m.gmane.org; Wed, 04 Mar 2015 20:16:55 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTKP4-0002NP-3d for emacs-devel@gnu.org; Wed, 04 Mar 2015 20:16:43 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YTKP0-0004HR-PC for emacs-devel@gnu.org; Wed, 04 Mar 2015 20:16:42 -0500 Original-Received: from mathematek.de ([5.9.124.170]:56678) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YTKP0-0004HK-JB for emacs-devel@gnu.org; Wed, 04 Mar 2015 20:16:38 -0500 Original-Received: from [192.168.2.100] (p5B2CE155.dip0.t-ipconnect.de [91.44.225.85]) (Authenticated sender: louis.hoefler@mathematek.de) by mathematek.de (Postfix) with ESMTPSA id C9058601776 for ; Thu, 5 Mar 2015 02:16:36 +0100 (CET) User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 5.9.124.170 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:183656 Archived-At: Hello everyone, I try to read output from a (shell "buffer") call, to a string. I came up with this function: (defun eide-shell-read-filter (process string) (setq eide-shell-output-temp string) ) (defun ei-shell-read (procid cmd) "This function sends commands to a opened shell and stores it's output into a variable" (eide-debug-message "ei-shell-read: cmd = %s" cmd) (eide-debug-message "ei-shell-read: process-filter = %S" (process-filter (get-process "shell"))) (add-function :after (process-filter (get-process "shell")) #'eide-shell-read-filter) (process-send-string procid (concat cmd "\n")) (remove-function (process-filter (get-process "shell")) #'eide-shell-read-filter) (eide-debug-message "ei-shell-read: command output = %s" eide-shell-output-temp) eide-shell-output-temp ) But the above code produces this error for M-x ei-interactive-shell: Debugger entered--Lisp error: (void-variable v) (process-filter v) (lambda nil (process-filter v))() advice--add-function(:after ((lambda nil (process-filter v)) lambda (gv--val) (set-process-filter v gv--val)) eide-shell-read-filter nil) ei-shell-read("*msys2-64*" "export") You can download the full sourcecode of the project here http://scm.mathematek.de/repos.cgi/emacside Can someone help me with this problem? Thank you, Louis