From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Bob Rogers Newsgroups: gmane.emacs.devel Subject: Adding a hook to list-processes Date: Sat, 27 Nov 2010 13:52:45 -0500 Message-ID: <19697.21373.201776.909872@rgr.rgrjr.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1290883983 25189 80.91.229.12 (27 Nov 2010 18:53:03 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 27 Nov 2010 18:53:03 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Nov 27 19:52:59 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PMPtI-0001YV-V4 for ged-emacs-devel@m.gmane.org; Sat, 27 Nov 2010 19:52:57 +0100 Original-Received: from localhost ([127.0.0.1]:33327 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PMPtI-00050i-IH for ged-emacs-devel@m.gmane.org; Sat, 27 Nov 2010 13:52:56 -0500 Original-Received: from [140.186.70.92] (port=55874 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PMPtD-00050Z-5P for emacs-devel@gnu.org; Sat, 27 Nov 2010 13:52:52 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PMPtB-0003gS-DR for emacs-devel@gnu.org; Sat, 27 Nov 2010 13:52:51 -0500 Original-Received: from rgrjr.com ([216.146.47.5]:58099) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PMPtB-0003gE-A4 for emacs-devel@gnu.org; Sat, 27 Nov 2010 13:52:49 -0500 Original-Received: from rgrjr.dyndns.org (c-66-30-196-77.hsd1.ma.comcast.net [66.30.196.77]) by rgrjr.com (Postfix on CentOS) with ESMTP id 31AF3160109 for ; Sat, 27 Nov 2010 18:52:47 +0000 (UTC) Original-Received: (qmail 13985 invoked by uid 89); 27 Nov 2010 18:52:46 -0000 Original-Received: from unknown (HELO rgr.rgrjr.com) (192.168.57.1) by home with SMTP; 27 Nov 2010 18:52:46 -0000 Original-Received: by rgr.rgrjr.com (Postfix, from userid 500) id 18234A4E6E; Sat, 27 Nov 2010 13:52:45 -0500 (EST) X-Mailer: VM 7.19 under Emacs 24.0.50.1 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:133192 Archived-At: I tried to do this using the patch below; it compiles without warning, but seems to have no effect. Evaluating the following code in src/emacs: (defun rgr-list-processes-hook () (message "In buffer %S" (current-buffer))) (add-hook 'after-list-processes-hook 'rgr-list-processes-hook) and then "M-x list-processes RET" does not produce the expected message. I cargo-culted this based on Qmouse_leave_buffer_hook; what did I do wrong? TIA, -- Bob Rogers http://www.rgrjr.com/ P.S. FWIW, I'm trying to turn the buffer names into buttons. Given my C skills, using a hook seemed like a safer bet. ------------------------------------------------------------------------ diff --git a/src/process.c b/src/process.c index f8ca095..e95d465 100644 --- a/src/process.c +++ b/src/process.c @@ -113,6 +113,7 @@ along with GNU Emacs. If not, see . */ #include "nsterm.h" #endif +Lisp_Object Vafter_list_processes_hook, Qafter_list_processes_hook; Lisp_Object Qeuid, Qegid, Qcomm, Qstate, Qppid, Qpgrp, Qsess, Qttname, Qtpgid; Lisp_Object Qminflt, Qmajflt, Qcminflt, Qcmajflt, Qutime, Qstime, Qcstime; Lisp_Object Qcutime, Qpri, Qnice, Qthcount, Qstart, Qvsize, Qrss, Qargs; @@ -1493,6 +1494,11 @@ list_processes_1 (Lisp_Object query_only) status_notify (NULL); redisplay_preserve_echo_area (13); } + + /* Give other code a chance to tweak the buffer. */ + if (!NILP (Vafter_list_processes_hook)) + call1 (Vrun_hooks, Qafter_list_processes_hook); + return Qnil; } @@ -7736,6 +7742,13 @@ The variable takes effect when `start-process' is called. */); #endif /* subprocesses */ + Qafter_list_processes_hook = intern_c_string ("mouse-leave-buffer-hook"); + staticpro (&Qafter_list_processes_hook); + + DEFVAR_LISP ("after-list-processes-hook", &Vafter_list_processes_hook, + doc: /* Hook run after list-processes. */); + Vafter_list_processes_hook = Qnil; + defsubr (&Sget_buffer_process); defsubr (&Sprocess_inherit_coding_system_flag); defsubr (&Slist_system_processes);