Subject: bug#45800: 27.1; ibuffer sort by filename/process fails with Dired

From: Fabrice BAUZAC-STEHLY <[email-masked]>
Date: Tue, 19 Jan 2021 22:37:38 +0100

Here is the patch, hopefully in the correct format.

>From b8ea8fed4729297bb22416893ac6369abdb51ee1 Mon Sep 17 00:00:00 2001
From: Fabrice Bauzac <[email-masked]>
Date: Mon, 18 Jan 2021 23:02:21 +0100
Subject: [PATCH] Sort according to filename/process as displayed

* ibuf-ext.el (ibuffer-do-sort-by-filename/process): use the same
function for sorting and for displaying the
filename/process (Bug#45800).
---
 lisp/ibuf-ext.el | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el
index ed5c9c0211..44574abd46 100644
--- a/lisp/ibuf-ext.el
+++ b/lisp/ibuf-ext.el
@@ -1497,10 +1497,10 @@ filename/process
   (string-lessp
    ;; FIXME: For now just compare the file name and the process name
    ;; (if it exists).  Is there a better way to do this?
-   (or (buffer-file-name (car a))
+   (or (with-current-buffer (car a) (ibuffer-buffer-file-name))
        (let ((pr-a (get-buffer-process (car a))))
 	 (and (processp pr-a) (process-name pr-a))))
-   (or (buffer-file-name (car b))
+   (or (with-current-buffer (car b) (ibuffer-buffer-file-name))
        (let ((pr-b (get-buffer-process (car b))))
 	 (and (processp pr-b) (process-name pr-b))))))
 
-- 
2.29.2