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

From: Fabrice BAUZAC-STEHLY <[email-masked]>
Date: Mon, 11 Jan 2021 21:02:54 +0100

Hello,

In ibuffer, the sort by filename/process (s f) does not sort according
to the (useful) displayed filename/process column.

To reproduce:

mkdir test
cd test
(a=b; for i in {1..3}; do mkdir $a; touch $a/a; a+=/b; done)
find
emacs -Q `find`
C-x 1
M-x ibuffer RET
s f

The result is that the dired buffers are grouped together, and the files
are grouped together, while they should be interspersed according to
lexicographical order of their "filename/process" column.

Looking at the sorter in ibuf-ext.el:

(define-ibuffer-sorter filename/process
 "Sort the buffers by their file name/process name."
  (:description "file name")
  (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))
       (let ((pr-a (get-buffer-process (car a))))
	 (and (processp pr-a) (process-name pr-a))))
   (or (buffer-file-name (car b))
       (let ((pr-b (get-buffer-process (car b))))
	 (and (processp pr-b) (process-name pr-b))))))

To fix this on my side, I have replaced both occurrences of
  (buffer-file-name (car X))
with
  (with-current-buffer (car X) (ibuffer-buffer-file-name))
which seems to work:

(define-ibuffer-sorter filename/process
 "Sort the buffers by their file name/process name."
  (:description "file name")
  (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 (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 (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))))))

In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.23, cairo version 1.16.0)
 of 2020-11-08, modified by Debian built on x86-ubc-01
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Debian GNU/Linux bullseye/sid

Recent messages:
Quit [2 times]
C-x C-g is undefined
Making completion list...
Quit
Mark saved where search started
Auto-saving...done
Making completion list...
Quit
Mark set
Making completion list...

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/27.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/27.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-cairo
 --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars
 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-6jKC2B/emacs-27.1+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD
JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LC_ALL: C
  value of $LC_MONETARY: fr_FR.UTF-8
  value of $LC_NUMERIC: fr_FR.UTF-8
  value of $LC_TIME: fr_FR.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: nil

Major mode: Emacs-Lisp

Minor modes in effect:
  global-magit-file-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  electric-pair-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/usr/share/emacs/site-lisp/llvm-11/tablegen-mode hides /usr/share/emacs/site-lisp/llvm-9/tablegen-mode
/usr/share/emacs/site-lisp/llvm-11/llvm-mode hides /usr/share/emacs/site-lisp/llvm-9/llvm-mode
/usr/share/emacs/site-lisp/llvm-11/emacs hides /usr/share/emacs/site-lisp/llvm-9/emacs
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash-pkg hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash-pkg
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash-autoloads hides /usr/share/emacs/site-lisp/elpa/dash-2.17.0/dash-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-autoloads
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit hides /usr/share/emacs/site-lisp/elpa/git-commit-2.99.0/git-commit
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit-pkg hides /usr/share/emacs/site-lisp/elpa/git-commit-2.99.0/git-commit-pkg
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit-autoloads hides /usr/share/emacs/site-lisp/elpa/git-commit-2.99.0/git-commit-autoloads
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-worktree hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-worktree
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-wip hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-wip
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-utils hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-utils
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-transient hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-transient
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-tag hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-tag
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-subtree hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-subtree
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-submodule hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-submodule
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-status hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-status
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-stash hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-stash
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-sequence hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-sequence
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-section
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-reset hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-reset
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-repos hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-repos
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-remote hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-remote
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-refs hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-refs
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-reflog hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-reflog
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-push hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-push
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-pull hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-pull
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-process hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-process
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-pkg hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-pkg
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-patch hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-patch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-obsolete hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-obsolete
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-notes hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-notes
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-mode hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-mode
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-merge hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-merge
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-margin hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-margin
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-log hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-log
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-imenu hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-imenu
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-gitignore hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-gitignore
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-git hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-git
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-files hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-files
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-fetch hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-fetch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-extras hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-extras
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-ediff hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-ediff
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-diff hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-diff
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-core hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-core
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-commit hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-commit
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-clone hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-clone
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-branch hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-branch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-bookmark hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-bookmark
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-blame hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-blame
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-bisect hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-bisect
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-autorevert hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-autorevert
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-apply hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-apply
/home/noon/.emacs.d/elpa/magit-20190902.1343/git-rebase hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/git-rebase
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-autoloads hides /usr/share/emacs/site-lisp/elpa/magit-2.99.0/magit-autoloads
/home/noon/.emacs.d/elpa/transient-20190831.802/transient hides /usr/share/emacs/site-lisp/elpa/transient-0.2.0.30/transient
/home/noon/.emacs.d/elpa/transient-20190831.802/transient-pkg hides /usr/share/emacs/site-lisp/elpa/transient-0.2.0.30/transient-pkg
/home/noon/.emacs.d/elpa/transient-20190831.802/transient-autoloads hides /usr/share/emacs/site-lisp/elpa/transient-0.2.0.30/transient-autoloads
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.2/with-editor-pkg
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.2/with-editor
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa/with-editor-3.0.2/with-editor-autoloads
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode-pkg hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode-pkg
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa/yaml-mode-0.0.15/yaml-mode-autoloads
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash-pkg hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash-pkg
/home/noon/.emacs.d/elpa/dash-20190814.2006/dash-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dash-2.17.0/dash-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/preseed hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/preseed
/usr/share/emacs/site-lisp/elpa/debian-el-37/gnus-BTS hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/gnus-BTS
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-pkg
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-el-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-bug hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-bug
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/debian-autoloads
/usr/share/emacs/site-lisp/elpa/debian-el-37/deb-view hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/deb-view
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-utils hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-utils
/usr/share/emacs/site-lisp/elpa/debian-el-37/apt-sources hides /usr/share/emacs/site-lisp/elpa-src/debian-el-37/apt-sources
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.2/dockerfile-mode hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.2/dockerfile-mode
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.2/dockerfile-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.2/dockerfile-mode-pkg
/usr/share/emacs/site-lisp/elpa/dockerfile-mode-1.2/dockerfile-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dockerfile-mode-1.2/dockerfile-mode-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/readme-debian hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/readme-debian
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-pkg hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-pkg
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/dpkg-dev-el-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/dpkg-dev-el-autoloads
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-copyright hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-copyright
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-control-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-control-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-changelog-mode hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-changelog-mode
/usr/share/emacs/site-lisp/elpa/dpkg-dev-el-37.0/debian-bts-control hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-bts-control
/usr/share/emacs/site-lisp/elpa/debian-el-37/debian-autoloads hides /usr/share/emacs/site-lisp/elpa-src/dpkg-dev-el-37.0/debian-autoloads
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.99.0/git-commit
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit-pkg hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.99.0/git-commit-pkg
/home/noon/.emacs.d/elpa/git-commit-20190717.29/git-commit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.99.0/git-commit-autoloads
/usr/share/emacs/site-lisp/elpa/go-mode-1.5.0/go-rename hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-rename
/usr/share/emacs/site-lisp/elpa/go-mode-1.5.0/go-mode hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode
/usr/share/emacs/site-lisp/elpa/go-mode-1.5.0/go-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-pkg
/usr/share/emacs/site-lisp/elpa/go-mode-1.5.0/go-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-mode-autoloads
/usr/share/emacs/site-lisp/elpa/go-mode-1.5.0/go-guru hides /usr/share/emacs/site-lisp/elpa-src/go-mode-1.5.0/go-guru
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-pkg hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-pkg
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.6/let-alist-autoloads
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-worktree hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-worktree
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-wip hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-wip
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-utils hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-utils
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-transient hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-transient
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-tag hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-tag
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-subtree hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-subtree
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-submodule hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-submodule
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-status hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-status
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-stash hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-stash
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-sequence hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-sequence
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-section hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-section
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-reset hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-reset
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-repos hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-repos
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-remote hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-remote
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-refs hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-refs
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-reflog hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-reflog
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-push hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-push
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-pull hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-pull
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-process hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-process
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-pkg hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-pkg
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-patch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-patch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-obsolete hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-obsolete
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-notes hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-notes
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-mode hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-mode
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-merge hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-merge
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-margin hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-margin
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-log hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-log
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-imenu hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-imenu
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-gitignore hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-gitignore
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-git hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-git
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-files hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-files
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-fetch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-fetch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-extras hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-extras
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-ediff hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-ediff
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-diff hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-diff
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-core hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-core
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-commit hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-commit
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-clone hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-clone
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-branch hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-branch
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-bookmark hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-bookmark
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-blame hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-blame
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-bisect hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-bisect
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-autorevert hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-autorevert
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-autoloads hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-autoloads
/home/noon/.emacs.d/elpa/magit-20190902.1343/magit-apply hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/magit-apply
/home/noon/.emacs.d/elpa/magit-20190902.1343/git-rebase hides /usr/share/emacs/site-lisp/elpa-src/magit-2.99.0/git-rebase
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-virtual hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-virtual
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-view hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-view
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-util hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-util
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-tools hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-tools
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-tools-pkg hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-tools-pkg
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-tools-autoloads hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-tools-autoloads
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-sync hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-sync
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-outline hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-outline
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-occur hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-occur
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-misc hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-misc
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-loader hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-loader
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-links hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-links
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-isearch hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-isearch
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-info hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-info
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-history hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-history
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-dev hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-dev
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-cache hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-cache
/usr/share/emacs/site-lisp/elpa/pdf-tools-1.0/pdf-annot hides /usr/share/emacs/site-lisp/elpa-src/pdf-tools-1.0/pdf-annot
/usr/share/emacs/site-lisp/elpa/rust-mode-0.3.0/rust-mode hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.3.0/rust-mode
/usr/share/emacs/site-lisp/elpa/rust-mode-0.3.0/rust-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.3.0/rust-mode-pkg
/usr/share/emacs/site-lisp/elpa/rust-mode-0.3.0/rust-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/rust-mode-0.3.0/rust-mode-autoloads
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-pkg hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-pkg
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-filter hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-filter
/usr/share/emacs/site-lisp/elpa/tablist-1.0/tablist-autoloads hides /usr/share/emacs/site-lisp/elpa-src/tablist-1.0/tablist-autoloads
/home/noon/.emacs.d/elpa/transient-20190831.802/transient hides /usr/share/emacs/site-lisp/elpa-src/transient-0.2.0.30/transient
/home/noon/.emacs.d/elpa/transient-20190831.802/transient-pkg hides /usr/share/emacs/site-lisp/elpa-src/transient-0.2.0.30/transient-pkg
/home/noon/.emacs.d/elpa/transient-20190831.802/transient-autoloads hides /usr/share/emacs/site-lisp/elpa-src/transient-0.2.0.30/transient-autoloads
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.2/with-editor
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor-pkg hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.2/with-editor-pkg
/home/noon/.emacs.d/elpa/with-editor-20190715.2007/with-editor-autoloads hides /usr/share/emacs/site-lisp/elpa-src/with-editor-3.0.2/with-editor-autoloads
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode-pkg hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode-pkg
/home/noon/.emacs.d/elpa/yaml-mode-20170727.1531/yaml-mode-autoloads hides /usr/share/emacs/site-lisp/elpa-src/yaml-mode-0.0.15/yaml-mode-autoloads
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /usr/share/emacs/27.1/lisp/emacs-lisp/let-alist

Features:
(shadow sort emacsbug mail-extr executable copyright my-present
my-timeline ert pp ewoc calc-arith ibuf-macs cl-print debug backtrace
char-fold misearch multi-isearch eieio-opt speedbar sb-image ezimage
dframe help-fns radix-tree ibuf-ext ibuffer ibuffer-loaddefs dired-aux
epa-file secrets dbus tramp-cache pcase cal-china lunar solar cal-dst
cal-islam holidays hol-loaddefs vc-git appt diary-lib diary-loaddefs
find-lisp filecache my-magit magit-submodule magit-obsolete magit-popup
magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull
magit-fetch magit-clone magit-remote magit-commit magit-sequence
magit-notes magit-worktree magit-tag magit-merge magit-branch
magit-reset magit-files magit-refs magit-status magit magit-repos
magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode
diff diff-mode magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process magit-mode transient
git-commit magit-git magit-section magit-utils crm log-edit pcvs-util
add-log with-editor cl-extra help-mode async-bytecomp async dash
pdf-loader my-bazel my-skeletons skeleton python tramp-sh tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
ls-lisp cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs calc-prog calc-ext calc calc-loaddefs
calc-macs paren elec-pair mu4e desktop frameset mu4e-org mu4e-main
mu4e-headers mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime
dig gnus-sum url url-proxy url-privacy url-expand url-methods
url-history mailcap shr url-cookie url-domsuf url-util svg xml dom
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time iso8601 gnus-spec gnus-int gnus-range
gnus-win gnus nnheader mu4e-compose mu4e-context mu4e-draft mu4e-actions
org-capture ido rfc2368 smtpmail sendmail mu4e-mark mu4e-message
flow-fill mu4e-proc mu4e-utils doc-view jka-compr image-mode exif
mu4e-lists org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro
org-footnote org-src ob-comint org-pcomplete pcomplete comint ansi-color
ring org-list org-faces org-entities org-version ob-emacs-lisp ob-core
ob-eval org-table ol org-keys org-compat advice org-macs org-loaddefs
find-func cal-menu calendar cal-loaddefs mule-util hl-line mu4e-vars
message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa
epg epg-config gnus-util rmail rmail-loaddefs text-property-search
time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils
mailheader mu4e-meta server jira-markup-mode derived thingatpt edmacro
kmacro cl noutline outline easy-mmode cus-edit cus-start cus-load
wid-edit dpkg-dev-el info debian-el go-mode-autoloads package easymenu
browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq
byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 392944 65623)
 (symbols 48 35677 1)
 (strings 32 129566 6245)
 (string-bytes 1 4194337)
 (vectors 16 59039)
 (vector-slots 8 1499052 252428)
 (floats 8 865 227)
 (intervals 56 4575 554)
 (buffers 1000 27))

-- 
Fabrice Bauzac-Stehly
PGP 01EEACF8244E9C14B551C5256ADA5F189BD322B6
old PGP 015AE9B25DCB0511D200A75DE5674DEA514C891D