From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spencer Baugh Newsgroups: gmane.emacs.bugs Subject: bug#63896: [PATCH] Support annotating and sorting the project list during completion Date: Tue, 27 Jun 2023 16:30:38 -0400 Message-ID: References: <83v8g240g6.fsf@gnu.org> <83legmutrp.fsf@gnu.org> <83bkhgt10s.fsf@gnu.org> <83o7lfsa6a.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24107"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 63896@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jun 27 22:31:22 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qEFLN-00061o-BU for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 27 Jun 2023 22:31:21 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qEFL7-0006cW-UZ; Tue, 27 Jun 2023 16:31:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qEFL5-0006c3-JO for bug-gnu-emacs@gnu.org; Tue, 27 Jun 2023 16:31:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qEFL5-0000iC-BH for bug-gnu-emacs@gnu.org; Tue, 27 Jun 2023 16:31:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qEFL4-0002o3-I0 for bug-gnu-emacs@gnu.org; Tue, 27 Jun 2023 16:31:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Spencer Baugh Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 27 Jun 2023 20:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 63896 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 63896-submit@debbugs.gnu.org id=B63896.168789785010768 (code B ref 63896); Tue, 27 Jun 2023 20:31:02 +0000 Original-Received: (at 63896) by debbugs.gnu.org; 27 Jun 2023 20:30:50 +0000 Original-Received: from localhost ([127.0.0.1]:49600 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qEFKq-0002na-J6 for submit@debbugs.gnu.org; Tue, 27 Jun 2023 16:30:50 -0400 Original-Received: from mxout5.mail.janestreet.com ([64.215.233.18]:32973) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qEFKl-0002nJ-I4 for 63896@debbugs.gnu.org; Tue, 27 Jun 2023 16:30:47 -0400 In-Reply-To: <83o7lfsa6a.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 16 Jun 2023 18:23:41 +0300") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:264181 Archived-At: Eli Zaretskii writes: >> From: Spencer Baugh >> Cc: 63896@debbugs.gnu.org >> Date: Fri, 16 Jun 2023 10:26:05 -0400 >> >> Eli Zaretskii writes: >> > >> > If project.el wants to access data from an exited compilation, it >> > needs to record that when the compilation exits (via the >> > compilation-finish-functions hook, for example). Calling >> > format-mode-line will not help you, because if the process doesn't >> > exist, its data cannot be accessed, and relying on what's displayed on >> > the mode line is a bad idea: it could be outdated or even irrelevant. >> > So please don't use such kludges, even though they might look >> > convenient at first sight. >> >> Would it be OK for compile.el to start storing this data in a variable? >> The number of errors/warnings/infos is already stored; also storing the >> exit status would probably be useful for all kinds of things. > > I think it would be okay to store data about the process in a > buffer-local variable, but we need to make sure we store everything > that might be useful. Sure, how about this? diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index ccf64fb670b..b1f6d146d01 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -171,6 +171,10 @@ compilation-error (defvar compilation-arguments nil "Arguments that were given to `compilation-start'.") +(defvar compilation-exit-status nil + "The `process-exit-status' of the compilation process, or nil if not exited yet.") +(defvar compilation-process-status nil + "The latest `process-status' of the compilation process.") (defvar compilation-num-errors-found 0) (defvar compilation-num-warnings-found 0) (defvar compilation-num-infos-found 0) @@ -2457,6 +2461,7 @@ compilation-minor-mode (defun compilation-handle-exit (process-status exit-status msg) "Write MSG in the current buffer and hack its `mode-line-process'." + (setq-local compilation-exit-status exit-status) (let ((inhibit-read-only t) (status (if compilation-exit-message-function (funcall compilation-exit-message-function @@ -2500,6 +2505,7 @@ compilation-handle-exit ;; Called when compilation process changes state. (defun compilation-sentinel (proc msg) "Sentinel for compilation buffers." + (setq-local compilation-process-status (process-status proc)) (if (memq (process-status proc) '(exit signal)) (unwind-protect (let ((buffer (process-buffer proc)))