unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
@ 2018-08-11 16:48 Tino Calancha
  2018-08-11 16:57 ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Tino Calancha @ 2018-08-11 16:48 UTC (permalink / raw)
  To: 32420


emacs -Q
M-x info RET
m Emacs RET
M-x ibuffer RET
;; Ibuffer wrongly reports *info* buffer as running a process.
--8<-----------------------------cut here---------------start------------->8---
commit db8f778c98bd6eb8db7b16239f6fddab012e5314
Author: Tino Calancha <tino.calancha@gmail.com>
Date:   Sun Aug 12 01:38:03 2018 +0900

    Ibuffer: Detect correctly the buffers running a process
    
    * lisp/ibuffer.el (filename-and-process): Store the process buffer
    as a text property; check for such property to detect a buffer
    with a process (Bug#32420).

diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el
index 0a7bfe00a9..03018d08a5 100644
--- a/lisp/ibuffer.el
+++ b/lisp/ibuffer.el
@@ -1912,11 +1912,9 @@ filename-and-process
      (let ((procs 0)
 	   (files 0))
        (dolist (string strings)
-	 (if (string-match "\\(?:\\`([[:ascii:]]+)\\)" string)
-	     (progn (setq procs (1+ procs))
-		    (if (< (match-end 0) (length string))
-			(setq files (1+ files))))
-	   (setq files (1+ files))))
+         (when (get-text-property 1 'ibuffer-process string)
+           (setq procs (1+ procs)))
+	 (setq files (1+ files)))
        (concat (cond ((zerop files) "No files")
 		     ((= 1 files) "1 file")
 		     (t (format "%d files" files)))
@@ -1928,7 +1926,8 @@ filename-and-process
 	(filename (ibuffer-make-column-filename buffer mark)))
     (if proc
 	(concat (propertize (format "(%s %s)" proc (process-status proc))
-			    'font-lock-face 'italic)
+			    'font-lock-face 'italic
+                            'ibuffer-process proc)
 		(if (> (length filename) 0)
 		    (format " %s" filename)
 		  ""))
--8<-----------------------------cut here---------------end--------------->8---

In GNU Emacs 26.1.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11)
 of 2018-08-11
Repository revision: ec6f588940e51013435408a456c10d33ddf98fb2
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description:	Debian GNU/Linux 9.5 (stretch)





^ permalink raw reply related	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-11 16:48 bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process Tino Calancha
@ 2018-08-11 16:57 ` Eli Zaretskii
  2018-08-11 17:13   ` Tino Calancha
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-08-11 16:57 UTC (permalink / raw)
  To: Tino Calancha; +Cc: 32420

> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Sun, 12 Aug 2018 01:48:22 +0900
> 
> 
> emacs -Q
> M-x info RET
> m Emacs RET
> M-x ibuffer RET
> ;; Ibuffer wrongly reports *info* buffer as running a process.

How do you see it reporting a process?  What I see is that it reports
a pseudo-file for it.  Am I missing something?





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-11 16:57 ` Eli Zaretskii
@ 2018-08-11 17:13   ` Tino Calancha
  2018-08-11 17:37     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Tino Calancha @ 2018-08-11 17:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 32420

[-- Attachment #1: Type: text/plain, Size: 621 bytes --]



On Sat, 11 Aug 2018, Eli Zaretskii wrote:

>> From: Tino Calancha <tino.calancha@gmail.com>
>> Date: Sun, 12 Aug 2018 01:48:22 +0900
>>
>>
>> emacs -Q
>> M-x info RET
>> m Emacs RET
>> M-x ibuffer RET
>> ;; Ibuffer wrongly reports *info* buffer as running a process.
>
> How do you see it reporting a process?  What I see is that it reports
> a pseudo-file for it.  Am I missing something?
Attached 1 picture.
It shows at the bottom the line:
3 buffers            2515909                  1 file, 1 process

If you delete buffer *info*, then you see:
2 buffers                574                  No files, no processes

[-- Attachment #2: Type: image/png, Size: 87417 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-11 17:13   ` Tino Calancha
@ 2018-08-11 17:37     ` Eli Zaretskii
  2018-08-12  8:21       ` Tino Calancha
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-08-11 17:37 UTC (permalink / raw)
  To: Tino Calancha; +Cc: 32420

> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Sun, 12 Aug 2018 02:13:20 +0900 (JST)
> cc: 32420@debbugs.gnu.org
> 
> >> emacs -Q
> >> M-x info RET
> >> m Emacs RET
> >> M-x ibuffer RET
> >> ;; Ibuffer wrongly reports *info* buffer as running a process.
> >
> > How do you see it reporting a process?  What I see is that it reports
> > a pseudo-file for it.  Am I missing something?
> Attached 1 picture.
> It shows at the bottom the line:
> 3 buffers            2515909                  1 file, 1 process

Ah, okay.  So, to fix this, isn't it better to see if the current
buffer is a process-buffer of some process in process-list?





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-11 17:37     ` Eli Zaretskii
@ 2018-08-12  8:21       ` Tino Calancha
  2018-08-12 18:46         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Tino Calancha @ 2018-08-12  8:21 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 32420, Tino Calancha



>>> How do you see it reporting a process?  What I see is that it reports
>>> a pseudo-file for it.  Am I missing something?
>> Attached 1 picture.
>> It shows at the bottom the line:
>> 3 buffers            2515909                  1 file, 1 process
>
> Ah, okay.  So, to fix this, isn't it better to see if the current
> buffer is a process-buffer of some process in process-list?
It's a bit tricky code.
When such thing run, the summarizer, I believe the current buffer
is *Ibuffer*; you receive 'strings': they are the rows in
column 'Filename/Process'.

There is no direct way to connect each string with its buffer.  The 
original code make the assumption that if 'string' matches something like
(foobar)
then it corresponds to a buffer running a process.
That assumption is wrong, for instance, in several info buffers.

Because you first create all columns, and the summarizer runs at the end,
I thought is simple to add the process as a text property for those
buffers having a process.  Then you don't need any assumption on 'string': 
you just check whether if 'string' has a property 'ibuffer-process' or 
not.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-12  8:21       ` Tino Calancha
@ 2018-08-12 18:46         ` Eli Zaretskii
  2018-08-13 10:30           ` Tino Calancha
  0 siblings, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2018-08-12 18:46 UTC (permalink / raw)
  To: Tino Calancha; +Cc: 32420

> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Sun, 12 Aug 2018 17:21:36 +0900 (JST)
> cc: Tino Calancha <tino.calancha@gmail.com>, 32420@debbugs.gnu.org
> 
> > Ah, okay.  So, to fix this, isn't it better to see if the current
> > buffer is a process-buffer of some process in process-list?
> It's a bit tricky code.

Then maybe it's high time to redesign it ;-)

But don't let that hold your fix.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process
  2018-08-12 18:46         ` Eli Zaretskii
@ 2018-08-13 10:30           ` Tino Calancha
  0 siblings, 0 replies; 7+ messages in thread
From: Tino Calancha @ 2018-08-13 10:30 UTC (permalink / raw)
  To: 32420-done

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Tino Calancha <tino.calancha@gmail.com>
>> Date: Sun, 12 Aug 2018 17:21:36 +0900 (JST)
>> cc: Tino Calancha <tino.calancha@gmail.com>, 32420@debbugs.gnu.org
>> 
>> > Ah, okay.  So, to fix this, isn't it better to see if the current
>> > buffer is a process-buffer of some process in process-list?
>> It's a bit tricky code.
>
> Then maybe it's high time to redesign it ;-)
I need to talk with my manager: she organize my agenda with that stuff.
> But don't let that hold your fix.
Fixed in emacs-26 branch as commit
'Ibuffer: Detect correctly the buffers running a process'
(12f7116714cf0cc3566ea2a5b1184c99cbfe7b90)





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-08-13 10:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-08-11 16:48 bug#32420: 26.1.50; Ibuffer: Detect correctly the buffers running a process Tino Calancha
2018-08-11 16:57 ` Eli Zaretskii
2018-08-11 17:13   ` Tino Calancha
2018-08-11 17:37     ` Eli Zaretskii
2018-08-12  8:21       ` Tino Calancha
2018-08-12 18:46         ` Eli Zaretskii
2018-08-13 10:30           ` Tino Calancha

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).