Subject: bug#59857: closed (Re: bug#59857: 29.0.50; 'add-display-text-property' doesn't work when OBJECT specified)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 06 Dec 2022 12:44:02 +0000

Your bug report

#59857: 29.0.50; 'add-display-text-property' doesn't work when OBJECT specified

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
59857: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59857
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#59857: 29.0.50; 'add-display-text-property' doesn't work when OBJECT specified
From: Eli Zaretskii <[email-masked]>
To: Akib Azmain Turja <[email-masked]>
Cc: [email-masked]
Date: Tue, 06 Dec 2022 14:42:58 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Tue, 06 Dec 2022 11:37:06 +0600
> From:  Akib Azmain Turja via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> #+begin_src emacs-lisp
> (with-temp-buffer
>   (let ((str "some useless string"))
>     (add-display-text-property 4 8 'height 2.0 str)
>     (add-display-text-property 2 12 'raise 0.5 str)
>     str))
> => error: (args-out-of-range 4 8)
> #+end_src

Thanks, fixed on the release branch.

Subject: 29.0.50; 'add-display-text-property' doesn't work when OBJECT specified
From: Akib Azmain Turja <[email-masked]>
To: [email-masked]
Date: Tue, 06 Dec 2022 11:37:06 +0600
List-Id: <debbugs-submit.debbugs.gnu.org>

#+begin_src emacs-lisp
(with-temp-buffer
  (let ((str "some useless string"))
    (add-display-text-property 4 8 'height 2.0 str)
    (add-display-text-property 2 12 'raise 0.5 str)
    str))
=> error: (args-out-of-range 4 8)
#+end_src

#+begin_src text
Debugger entered--Lisp error: (args-out-of-range 4 8)
  add-display-text-property(4 8 height 2.0 "some useless string")
  (let ((str "some useless string")) (add-display-text-property 4 8 'height 2.0 str) (add-display-text-property 2 12 'raise 0.5 str) str)
  (progn (let ((str "some useless string")) (add-display-text-property 4 8 'height 2.0 str) (add-display-text-property 2 12 'raise 0.5 str) str))
  (unwind-protect (progn (let ((str "some useless string")) (add-display-text-property 4 8 'height 2.0 str) (add-display-text-property 2 12 'raise 0.5 str) str)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((str "some useless string")) (add-display-text-property 4 8 'height 2.0 str) (add-display-text-property 2 12 'raise 0.5 str) str)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
  (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (let ((str "some useless string")) (add-display-text-property 4 8 'height 2.0 str) (add-display-text-property 2 12 'raise 0.5 str) str)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  command-execute(eval-last-sexp)
#+end_src

Here is the definition, which doesn't pass OBJECT to
'put-text-property', so it tries to modify the buffer text, which fails
in empty buffer.

#+begin_src emacs-lisp
(defun add-display-text-property (start end prop value
                                        &optional object)
  "Add display property PROP with VALUE to the text from START to END.
If any text in the region has a non-nil `display' property, those
properties are retained.

If OBJECT is non-nil, it should be a string or a buffer.  If nil,
this defaults to the current buffer."
  (let ((sub-start start)
        (sub-end 0)
        disp)
    (while (< sub-end end)
      (setq sub-end (next-single-property-change sub-start 'display object
                                                 (if (stringp object)
                                                     (min (length object) end)
                                                   (min end (point-max)))))
      (if (not (setq disp (get-text-property sub-start 'display object)))
          ;; No old properties in this range.
          (put-text-property sub-start sub-end 'display (list prop value))
        ;; We have old properties.
        (let ((vector nil))
          ;; Make disp into a list.
          (setq disp
                (cond
                 ((vectorp disp)
                  (setq vector t)
                  (seq-into disp 'list))
                 ((not (consp (car disp)))
                  (list disp))
                 (t
                  disp)))
          ;; Remove any old instances.
          (when-let ((old (assoc prop disp)))
            (setq disp (delete old disp)))
          (setq disp (cons (list prop value) disp))
          (when vector
            (setq disp (seq-into disp 'vector)))
          ;; Finally update the range.
          (put-text-property sub-start sub-end 'display disp)))
      (setq sub-start sub-end))))
#+end_src

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.30, cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 --prefix=/gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528
 --enable-fast-install --with-sqlite3 --with-xinput2 --with-xwidgets
 --with-modules --with-cairo --with-native-compilation
 --disable-build-details'

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

Important settings:
  value of $EMACSLOADPATH: /home/akib/.guix-profile/share/emacs/site-lisp:/gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp
  value of $LANG: en_US.utf8
  value of $XMODIFIERS: @im=exwm-xim
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  eat-trace-mode: t
  eat-eshell-visual-command-mode: t
  eat-eshell-mode: t
  shell-dirtrack-mode: t
  lin-mode: t
  gnus-undo-mode: t
  diff-hl-margin-mode: t
  diff-hl-flydiff-mode: t
  hl-line-mode: t
  desktop-save-mode: t
  gcmh-mode: t
  server-mode: t
  gtags-mode: t
  corfu-doc-mode: t
  corfu-history-mode: t
  global-corfu-mode: t
  corfu-mode: t
  global-anzu-mode: t
  anzu-mode: t
  isearch-mb-mode: t
  global-auto-revert-mode: t
  save-place-mode: t
  electric-pair-mode: t
  gc-buffers-mode: t
  which-key-mode: t
  marginalia-mode: t
  vertico-mode: t
  minibar-mode: t
  winner-mode: t
  workroom-winner-mode: t
  workroom-auto-project-workroom-mode: t
  workroom-desktop-save-mode: t
  workroom-mode: t
  savehist-mode: t
  recentf-mode: t
  shackle-mode: t
  blow-mode: t
  leaf-key-override-global-mode: t
  el-patch-use-package-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/akib/.config/emacs/elpa/transient-20220717.1713/transient hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/transient
/home/akib/.config/emacs/elpa/jsonrpc-1.0.15.0.20220714.101331/jsonrpc hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/jsonrpc
/home/akib/.config/emacs/elpa/flymake-1.2.2.0.20221026.210423/flymake hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/progmodes/flymake
/home/akib/.config/emacs/elpa/eglot-1.9.0.20221118.235517/eglot hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/progmodes/eglot
/home/akib/.config/emacs/elpa/xref-1.5.1.0.20221015.114321/xref hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/progmodes/xref
/home/akib/.config/emacs/elpa/project-0.8.3.0.20221114.1910/project hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/progmodes/project
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-desktop-notifications hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-desktop-notifications
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-speedbar hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-speedbar
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-imenu hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-imenu
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-pcomplete hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-pcomplete
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-compat hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-compat
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-replace hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-replace
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-notify hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-notify
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-stamp hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-stamp
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-capab hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-capab
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-lang hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-lang
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-loaddefs hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-loaddefs
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-match hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-match
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-list hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-list
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-truncate hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-truncate
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-services hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-services
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-sound hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-sound
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-button hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-button
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-dcc hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-dcc
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-page hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-page
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-log hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-log
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-goodies hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-goodies
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-ezbounce hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-ezbounce
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-menu hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-menu
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-common hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-common
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-join hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-join
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-xdcc hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-xdcc
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-ibuffer hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-ibuffer
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-status-sidebar hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-status-sidebar
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-netsplit hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-netsplit
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-spelling hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-spelling
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-networks hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-networks
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-autoaway hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-autoaway
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-track hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-track
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-backend hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-backend
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-ring hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-ring
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-identd hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-identd
/home/akib/.config/emacs/elpa/erc-5.4.1.0.20221104.193223/erc-fill hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/erc/erc-fill
/home/akib/.config/emacs/elpa/eldoc-1.13.0.0.20220723.71404/eldoc hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/emacs-lisp/eldoc
/home/akib/.config/emacs/elpa/seq-2.23.0.20210925.195432/seq hides /gnu/store/dzfyzx2b18qh5i38rvkslw04il1nbsms-emacs-edge-29.0.50-3.eb02528/share/emacs/29.0.50/lisp/emacs-lisp/seq

Features:
(setup shadow emacsbug profiler consult-imenu tabify man gnus-draft
binhex disass url-http url-auth url-gw pulse svg-clock net-utils scheme
smtpmail mailalias bbdb-pgp eudc-capf eudc eudc-vars footnote flow-fill
bbdb-mua bbdb-com bbdb bbdb-site gnus-cite mm-archive mail-extr textsec
uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check
gnus-async gnus-bcklg sort gnus-ml nndraft nnmh gnus-search eieio-opt
speedbar ezimage dframe qp nnmaildir network-stream nsm nnfolder nnnil
gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg nntp
gnus-cache embark-consult embark ffap epa-file password-store
eshell-syntax-highlighting em-xtra em-unix em-tramp em-term em-script
em-prompt em-ls em-hist em-pred em-glob em-cmpl em-dirs em-basic
em-banner em-alias esh-var esh-mode eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups esh-util goto-addr
modus-operandi-theme vterm tramp tramp-loaddefs trampver
tramp-integration tramp-compat ls-lisp term ehelp vterm-module etags
fileloop descr-text consult-vertico consult compat-28 term/eat
bash-completion term/xterm xterm cus-start loaddefs-gen tar-mode quelpa
iwindow magit-extras magit-bookmark 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 magit-diff
git-commit log-edit magit-core magit-autorevert magit-margin
magit-transient magit-process with-editor magit-mode transient magit-git
magit-base magit-section crm compat-27 compat-26 elisp-demos
mc-edit-lines mc-hide-unmatched-lines-mode mc-mark-more mc-cycle-cursors
multiple-cursors-core rect helpful edebug debug info-look f f-shortdoc
shortdoc elisp-refs s kind-icon svg-lib eat emms-volume
emms-volume-sndioctl emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-last-played emms-cue emms-info-ogginfo
emms-info-opusinfo emms-info-metaflac emms-info-mp3info
emms-info-exiftool emms-info-native bindat emms-playlist-mode
emms-source-playlist emms-source-file locate emms-player-mpv
emms-playing-time emms-info emms-later-do emms-player-simple emms
emms-compat mode-line-bell cl-print backtrace misearch multi-isearch
shell dmenu orderless cape info-colors mule-util arc-mode archive-mode
enriched facemenu plstore whitespace guix-build-log guix-utils bui-utils
dash guix js autoconf autoconf-mode gnu-indent asm-mode smerge-mode
markdown-mode edit-indirect time-stamp perl-mode view flymake-cc
macrostep-c cmacexp macrostep cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs flyspell ispell texinfo
texinfo-loaddefs add-log dired-aux vc-hg vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc-rcs diredfl lin face-remap bug-reference make-mode org-fragtog
org-inline-anim org-element avl-tree generator ol-eww eww xdg url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-registry
registry eieio-base gnus-art mm-uu mml2015 mm-view mml-smime smime
gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group
gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7
nnoo parse-time gnus-spec gnus-win gnus-int gnus-range message sendmail
yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mailabbrev gmm-utils mailheader gnus nnheader gnus-util
mail-utils range mm-util mail-prsvr ol-docview doc-view jka-compr
image-mode exif ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table
oc-basic bibtex iso8601 ol org-keys oc org-compat org-macs org-loaddefs
format-spec cal-menu calendar cal-loaddefs hi-lock vc-git diff-hl-margin
diff-hl-dired dired dired-loaddefs diff-hl-flydiff diff diff-hl log-view
pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode why-this color timezone
sh-script smie treesit executable battery dbus xml package-lint-flymake
package-lint let-alist imenu finder find-func highlight-defined paredit
highlight-quoted aggressive-indent display-line-numbers
display-fill-column-indicator ws-butler highlight-numbers parent-mode
highlight-thing rainbow-delimiters hl-todo hl-line flymake-popon
posframe popon checkdoc lisp-mnt flymake-proc flymake compile comint
ansi-osc ansi-color mb-depth desktop frameset pinentry time-date
modus-vivendi-theme modus-themes gcmh init comp comp-cstr warnings
exwm-xim xcb-xim xcb-xlib exwm-randr xcb-randr exwm exwm-input
xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render
exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto
xcb-types xcb-debug server auth-source-pass gtags-mode files-x xref
corfu-doc corfu-history corfu anzu advice thingatpt isearch-mb
autorevert filenotify saveplace elec-pair gc-buffers which-key
marginalia vertico minibar winner workroom compat compat-macs project
bookmark text-property-search disp-table savehist recentf tree-widget
shackle trace blow pcase edmacro kmacro cl-extra cus-edit pp cus-load
icons wid-edit leaf finder-inf vterm-autoloads guix-emacs
ctrlf-autoloads easy-mmode erc-autoloads vertico-autoloads
modus-themes-autoloads mood-line-autoloads closql-autoloads
workroom-autoloads eat-autoloads insecure-lock-autoloads
orderless-autoloads htmlize-autoloads lin-autoloads undercover-autoloads
shut-up-autoloads doom-modeline-autoloads posframe-autoloads
exwm-autoloads consult-notmuch-autoloads elisp-demos-autoloads
ef-themes-autoloads ligature-autoloads meow-autoloads
eshell-syntax-highlighting-autoloads helpful-autoloads chess-autoloads
cape-autoloads exercism-autoloads a-autoloads devhelp-autoloads
ace-window-autoloads consult-org-roam-autoloads emacsql-sqlite-autoloads
emacsql-autoloads mastodon-autoloads request-autoloads
coverlay-autoloads rx gnuplot-autoloads setup-autoloads el-patch
el-patch-stub coterm-autoloads async-autoloads iwindow-autoloads
anzu-autoloads disk-usage-autoloads geiser-guile-autoloads geiser-impl
help-fns radix-tree help-mode geiser-custom geiser-base ring
coverage-autoloads doom-themes-autoloads moody-autoloads magit-autoloads
ts-autoloads notmuch-autoloads markdown-mode-autoloads
marginalia-autoloads diff-hl-autoloads embark-consult-autoloads
consult-autoloads eglot-ccls-autoloads eglot-autoloads flymake-autoloads
nyan-mode-autoloads hare-mode-autoloads async-await-autoloads
iter2-autoloads promise-autoloads aggressive-indent-autoloads
shrink-path-autoloads ement-autoloads taxy-magit-section-autoloads
magit-section-autoloads plz-autoloads cov-autoloads elquery-autoloads
nubox-autoloads f-autoloads web-server-autoloads el-fetch-autoloads
corfu-doc-terminal-autoloads popon-autoloads corfu-autoloads
testcover-mark-line-autoloads blow-autoloads taxy-autoloads
compat-autoloads s-autoloads mood-one-theme-autoloads quelpa-autoloads
paredit-autoloads minibar-autoloads relint-autoloads ov-autoloads
gc-buffers-autoloads crux-autoloads mlscroll-autoloads
multiple-cursors-autoloads geiser-autoloads project-autoloads
xref-autoloads embark-autoloads info elpher-autoloads camera-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode 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 lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads xwidget-internal dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 2921750 5642342)
 (symbols 48 106478 4148)
 (strings 32 721767 1238921)
 (string-bytes 1 37324126)
 (vectors 16 372876)
 (vector-slots 8 7747273 6539466)
 (floats 8 1665 19157)
 (intervals 56 118668 180038)
 (buffers 984 346))

-- 
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: [email-masked]
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."