Subject: bug#36058: 27.0.50; add-text-properties called with nil for beg and end

From: "Mark A. Hershberger" <[email-masked]>
Date: Sun, 02 Jun 2019 15:35:12 -0400

I have a function called totd (following patch) that is invoked at startup and it is
causing the attached backtrace when make-text-button is called with nil
for beg and end.

The following patch fixes this.

1 file changed, 10 insertions(+), 7 deletions(-)
lisp/button.el | 17 ++++++++++-------

modified   lisp/button.el
@@ -345,13 +345,16 @@ make-text-button
       (setcar type-entry 'category)
       (setcar (cdr type-entry)
 	      (button-category-symbol (car (cdr type-entry)))))
-    ;; Now add all the text properties at once
-    (add-text-properties beg end
-                         ;; Each button should have a non-eq `button'
-                         ;; property so that next-single-property-change can
-                         ;; detect boundaries reliably.
-                         (cons 'button (cons (list t) properties))
-                         object)
+    (when (and (integer-or-marker-p beg)
+               (integer-or-marker-p end))
+      ;; Now add all the text properties at once
+      (add-text-properties beg end
+                           ;; Each button should have a non-eq
+                           ;; `button' property so that
+                           ;; next-single-property-change can detect
+                           ;; boundaries reliably.
+                           (cons 'button (cons (list t) properties))
+                           object))
     ;; Return something that can be used to get at the button.
     (or object beg)))

(defun totd ()
    "Generate the tip of the day."
    (interactive)
    (with-output-to-temp-buffer "*Tip of the day*"
      (let* ((commands (loop for s being the symbols
                             when (commandp s) collect s))
             (command (nth (random (length commands)) commands)))
        (princ
         (concat "Your tip for the day is:\n========================\n\n"
                 (describe-function command)
                 "\n\nInvoke with:\n\n"
                 (with-temp-buffer
                   (where-is command t)
                   (buffer-string)))))))

Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
  add-text-properties(nil nil (button (t) category help-news-button help-args nil) nil)
  make-text-button(nil nil type help-news help-args nil)
  help-fns--first-release(gnus-uu-decode-unshar-and-save-view)
  help-fns--mention-first-release(gnus-uu-decode-unshar-and-save-view)
  run-hook-with-args(help-fns--mention-first-release gnus-uu-decode-unshar-and-save-view)
  describe-function-1(gnus-uu-decode-unshar-and-save-view)
  describe-function(gnus-uu-decode-unshar-and-save-view)
  (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (where-is command t) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))
  (princ (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (where-is command t) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))))))
  (let* ((commands (let* ((--cl-var-- nil)) (mapatoms #'(lambda (s) (if ... ...)) nil) (nreverse --cl-var--))) (command (nth (random (length commands)) commands))) (princ (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (where-is command t) (buffer-string)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))))))
  (progn (let* ((commands (let* ((--cl-var-- nil)) (mapatoms #'(lambda ... ...) nil) (nreverse --cl-var--))) (command (nth (random (length commands)) commands))) (princ (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let ((temp-buffer (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... ...) (and ... ...))))))))
  (prog1 (progn (let* ((commands (let* ((--cl-var-- nil)) (mapatoms #'... nil) (nreverse --cl-var--))) (command (nth (random (length commands)) commands))) (princ (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let ((temp-buffer ...)) (save-current-buffer (set-buffer temp-buffer) (unwind-protect ... ...))))))) (internal-temp-output-buffer-show buf))
  (let* ((old-dir default-directory) (buf (save-current-buffer (set-buffer (get-buffer-create "*Tip of the day*")) (prog1 (current-buffer) (kill-all-local-variables) (setq default-directory old-dir) (setq buffer-read-only nil) (setq buffer-file-name nil) (setq buffer-undo-list t) (let ((inhibit-read-only t) (inhibit-modification-hooks t)) (erase-buffer) (run-hooks 'temp-buffer-setup-hook))))) (standard-output buf)) (prog1 (progn (let* ((commands (let* (...) (mapatoms ... nil) (nreverse --cl-var--))) (command (nth (random ...) commands))) (princ (concat "Your tip for the day is:\n========================\n..." (describe-function command) "\n\nInvoke with:\n\n" (let (...) (save-current-buffer ... ...)))))) (internal-temp-output-buffer-show buf)))
  totd()

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11, cairo version 1.14.8)
 of 2019-06-02 built on silk
Windowing system distributor 'The X.Org Foundation', version 11.0.11902000
System Description: Debian GNU/Linux 9 (stretch)

Recent messages:
Saving file /home/mah/work/code/emacs/lisp/button.el...
Wrote /home/mah/work/code/emacs/lisp/button.el
Wrote /home/mah/work/code/emacs/lisp/button.elc
Wrote /home/mah/work/code/emacs/lisp/button.{el,elc}
Finding changes in /home/mah/work/code/emacs/lisp/button.el...
QuitInvalid face attribute :family nil
Invalid face attribute :family nil [3 times]
Quit
Connection file "/run/user/1000/emacs/server" deleted
Wrote /home/mah/work/code/emacs/lisp/button.elc

Configured using:
 'configure --without-xft --with-modules --with-xwidgets --with-gconf
 --with-cairo'

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

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Magit

Minor modes in effect:
  magit-gitflow-mode: t
  flx-ido-mode: t
  yahoo-weather-mode: t
  global-magit-file-mode: t
  display-time-mode: t
  override-global-mode: t
  magit-wip-after-save-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  ido-everywhere: t
  global-emojify-mode: t
  emojify-mode: t
  direnv-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Load-path shadows:
~/work/code/dash/helm-dash hides /home/mah/.emacs.d/elpa/helm-dash-20190527.1118/helm-dash
~/work/code/magit-popup/magit-popup hides /home/mah/.emacs.d/elpa/magit-popup-20190223.2234/magit-popup
~/work/code/magithub/magithub-notification hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-notification
~/work/code/magithub/magithub-issue hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-issue
~/work/code/magithub/magithub-edit-mode hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-edit-mode
~/work/code/magithub/magithub-orgs hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-orgs
~/work/code/magithub/magithub-comment hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-comment
~/work/code/magithub/magithub-dash hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-dash
~/work/code/magithub/magithub-core hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-core
~/work/code/magithub/magithub hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub
~/work/code/magithub/magithub-ci hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-ci
~/work/code/magithub/magithub-repo hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-repo
~/work/code/magithub/magithub-label hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-label
~/work/code/magithub/magithub-issue-post hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-issue-post
~/work/code/magithub/magithub-settings hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-settings
~/work/code/magithub/magithub-issue-tricks hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-issue-tricks
~/work/code/magithub/magithub-faces hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-faces
~/work/code/magithub/magithub-issue-view hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-issue-view
~/work/code/magithub/magithub-user hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-user
~/work/code/magithub/magithub-completion hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-completion
~/work/code/magithub/magithub-autoloads hides /home/mah/.emacs.d/elpa/magithub-20190518.1123/magithub-autoloads
/home/mah/work/code/magit/lisp/magit-autorevert hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-autorevert
/home/mah/work/code/magit/lisp/magit-stash hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-stash
/home/mah/work/code/magit/lisp/magit-repos hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-repos
/home/mah/work/code/magit/lisp/magit-merge hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-merge
/home/mah/work/code/magit/lisp/magit-extras hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-extras
/home/mah/work/code/magit/lisp/magit-subtree hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-subtree
/home/mah/work/code/magit/lisp/magit-clone hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-clone
/home/mah/work/code/magit/lisp/magit-sequence hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-sequence
/home/mah/work/code/magit/lisp/magit-ediff hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-ediff
/home/mah/work/code/magit/lisp/magit-reflog hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-reflog
/home/mah/work/code/magit/lisp/magit-core hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-core
/home/mah/work/code/magit/lisp/magit-git hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-git
/home/mah/work/code/magit/lisp/git-rebase hides /home/mah/.emacs.d/elpa/magit-20190525.1118/git-rebase
/home/mah/work/code/magit/lisp/magit-patch hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-patch
/home/mah/work/code/magit/lisp/magit-fetch hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-fetch
/home/mah/work/code/magit/lisp/magit-gitignore hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-gitignore
/home/mah/work/code/magit/lisp/magit-bookmark hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-bookmark
/home/mah/work/code/magit/lisp/magit-worktree hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-worktree
/home/mah/work/code/magit/lisp/magit-bisect hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-bisect
/home/mah/work/code/magit/lisp/magit-obsolete hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-obsolete
/home/mah/work/code/magit/lisp/magit-process hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-process
/home/mah/work/code/magit/lisp/magit-branch hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-branch
/home/mah/work/code/magit/lisp/magit-margin hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-margin
/home/mah/work/code/magit/lisp/magit-blame hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-blame
/home/mah/work/code/magit/lisp/magit-transient hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-transient
/home/mah/work/code/magit/lisp/magit-notes hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-notes
/home/mah/work/code/magit/lisp/magit-reset hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-reset
/home/mah/work/code/magit/lisp/magit-files hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-files
/home/mah/work/code/magit/lisp/magit-wip hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-wip
/home/mah/work/code/magit/lisp/magit-pull hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-pull
/home/mah/work/code/magit/lisp/magit-diff hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-diff
/home/mah/work/code/magit/lisp/magit hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit
/home/mah/work/code/magit/lisp/magit-utils hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-utils
/home/mah/work/code/magit/lisp/magit-tag hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-tag
/home/mah/work/code/magit/lisp/magit-status hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-status
/home/mah/work/code/magit/lisp/magit-commit hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-commit
/home/mah/work/code/magit/lisp/magit-imenu hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-imenu
/home/mah/work/code/magit/lisp/magit-section hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-section
/home/mah/work/code/magit/lisp/magit-remote hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-remote
/home/mah/work/code/magit/lisp/magit-refs hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-refs
/home/mah/work/code/magit/lisp/magit-autoloads hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-autoloads
/home/mah/work/code/magit/lisp/magit-mode hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-mode
/home/mah/work/code/magit/lisp/magit-log hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-log
/home/mah/work/code/magit/lisp/magit-push hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-push
/home/mah/work/code/magit/lisp/magit-apply hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-apply
/home/mah/work/code/magit/lisp/magit-pkg hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-pkg
/home/mah/work/code/magit/lisp/magit-submodule hides /home/mah/.emacs.d/elpa/magit-20190525.1118/magit-submodule
/home/mah/work/code/magit/lisp/git-commit hides /home/mah/.emacs.d/elpa/git-commit-20190501.1823/git-commit
~/work/code/php-mode/php-mode-debug hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php-mode-debug
~/work/code/php-mode/php-project hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php-project
~/work/code/php-mode/php-face hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php-face
~/work/code/php-mode/php-mode-autoloads hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php-mode-autoloads
~/work/code/php-mode/php hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php
~/work/code/php-mode/php-mode hides /home/mah/.emacs.d/elpa/php-mode-20190530.1910/php-mode
/home/mah/.emacs.d/elpa/shorten-1.6/shorten hides /home/mah/.emacs.d/elpa/tracking-20171210.2102/shorten
~/work/code/with-editor/with-editor hides /home/mah/.emacs.d/elpa/with-editor-20190511.1157/with-editor
/home/mah/.emacs.d/elpa/auth-source-pass-20190528.1959/auth-source-pass hides /home/mah/work/code/emacs/lisp/auth-source-pass
/home/mah/.emacs.d/elpa/svg-0.2/svg hides /home/mah/work/code/emacs/lisp/svg
/home/mah/.emacs.d/elpa/less-css-mode-20161001.453/less-css-mode hides /home/mah/work/code/emacs/lisp/textmodes/less-css-mode
/home/mah/.emacs.d/elpa/org-20190218/ox-beamer hides /home/mah/work/code/emacs/lisp/org/ox-beamer
/home/mah/.emacs.d/elpa/org-20190218/org-faces hides /home/mah/work/code/emacs/lisp/org/org-faces
/home/mah/.emacs.d/elpa/org-20190218/org-install hides /home/mah/work/code/emacs/lisp/org/org-install
/home/mah/.emacs.d/elpa/org-20190218/ox-icalendar hides /home/mah/work/code/emacs/lisp/org/ox-icalendar
/home/mah/.emacs.d/elpa/org-20190218/org-attach hides /home/mah/work/code/emacs/lisp/org/org-attach
/home/mah/.emacs.d/elpa/org-20190218/org-element hides /home/mah/work/code/emacs/lisp/org/org-element
/home/mah/.emacs.d/elpa/org-20190218/ob-processing hides /home/mah/work/code/emacs/lisp/org/ob-processing
/home/mah/.emacs.d/elpa/org-20190218/ob-C hides /home/mah/work/code/emacs/lisp/org/ob-C
/home/mah/.emacs.d/elpa/org-20190218/ob-latex hides /home/mah/work/code/emacs/lisp/org/ob-latex
/home/mah/.emacs.d/elpa/org-20190218/ob-calc hides /home/mah/work/code/emacs/lisp/org/ob-calc
/home/mah/.emacs.d/elpa/org-20190218/ob-tangle hides /home/mah/work/code/emacs/lisp/org/ob-tangle
/home/mah/.emacs.d/elpa/org-20190218/org-macro hides /home/mah/work/code/emacs/lisp/org/org-macro
/home/mah/.emacs.d/elpa/org-20190218/ob-plantuml hides /home/mah/work/code/emacs/lisp/org/ob-plantuml
/home/mah/.emacs.d/elpa/org-20190218/ob-fortran hides /home/mah/work/code/emacs/lisp/org/ob-fortran
/home/mah/.emacs.d/elpa/org-20190218/org-mouse hides /home/mah/work/code/emacs/lisp/org/org-mouse
/home/mah/.emacs.d/elpa/org-20190218/org-datetree hides /home/mah/work/code/emacs/lisp/org/org-datetree
/home/mah/.emacs.d/elpa/org-20190218/org-entities hides /home/mah/work/code/emacs/lisp/org/org-entities
/home/mah/.emacs.d/elpa/org-20190218/ob-ditaa hides /home/mah/work/code/emacs/lisp/org/ob-ditaa
/home/mah/.emacs.d/elpa/org-20190218/org-irc hides /home/mah/work/code/emacs/lisp/org/org-irc
/home/mah/.emacs.d/elpa/org-20190218/ob-io hides /home/mah/work/code/emacs/lisp/org/ob-io
/home/mah/.emacs.d/elpa/org-20190218/org-mobile hides /home/mah/work/code/emacs/lisp/org/org-mobile
/home/mah/.emacs.d/elpa/org-20190218/org-eshell hides /home/mah/work/code/emacs/lisp/org/org-eshell
/home/mah/.emacs.d/elpa/org-20190218/ob-lilypond hides /home/mah/work/code/emacs/lisp/org/ob-lilypond
/home/mah/.emacs.d/elpa/org-20190218/ob-haskell hides /home/mah/work/code/emacs/lisp/org/ob-haskell
/home/mah/.emacs.d/elpa/org-20190218/ob-lisp hides /home/mah/work/code/emacs/lisp/org/ob-lisp
/home/mah/.emacs.d/elpa/org-20190218/ob-shen hides /home/mah/work/code/emacs/lisp/org/ob-shen
/home/mah/.emacs.d/elpa/org-20190218/ob-mscgen hides /home/mah/work/code/emacs/lisp/org/ob-mscgen
/home/mah/.emacs.d/elpa/org-20190218/org-table hides /home/mah/work/code/emacs/lisp/org/org-table
/home/mah/.emacs.d/elpa/org-20190218/org-rmail hides /home/mah/work/code/emacs/lisp/org/org-rmail
/home/mah/.emacs.d/elpa/org-20190218/ob-picolisp hides /home/mah/work/code/emacs/lisp/org/ob-picolisp
/home/mah/.emacs.d/elpa/org-20190218/ob-groovy hides /home/mah/work/code/emacs/lisp/org/ob-groovy
/home/mah/.emacs.d/elpa/org-20190218/org-footnote hides /home/mah/work/code/emacs/lisp/org/org-footnote
/home/mah/.emacs.d/elpa/org-20190218/ob-lob hides /home/mah/work/code/emacs/lisp/org/ob-lob
/home/mah/.emacs.d/elpa/org-20190218/ob-J hides /home/mah/work/code/emacs/lisp/org/ob-J
/home/mah/.emacs.d/elpa/org-20190218/ob-R hides /home/mah/work/code/emacs/lisp/org/ob-R
/home/mah/.emacs.d/elpa/org-20190218/ox-latex hides /home/mah/work/code/emacs/lisp/org/ox-latex
/home/mah/.emacs.d/elpa/org-20190218/ob-forth hides /home/mah/work/code/emacs/lisp/org/ob-forth
/home/mah/.emacs.d/elpa/org-20190218/ob-matlab hides /home/mah/work/code/emacs/lisp/org/ob-matlab
/home/mah/.emacs.d/elpa/org-20190218/ox-odt hides /home/mah/work/code/emacs/lisp/org/ox-odt
/home/mah/.emacs.d/elpa/org-20190218/ob-org hides /home/mah/work/code/emacs/lisp/org/ob-org
/home/mah/.emacs.d/elpa/org-20190218/org-pcomplete hides /home/mah/work/code/emacs/lisp/org/org-pcomplete
/home/mah/.emacs.d/elpa/org-20190218/org-plot hides /home/mah/work/code/emacs/lisp/org/org-plot
/home/mah/.emacs.d/elpa/org-20190218/org-crypt hides /home/mah/work/code/emacs/lisp/org/org-crypt
/home/mah/.emacs.d/elpa/org-20190218/ob-css hides /home/mah/work/code/emacs/lisp/org/ob-css
/home/mah/.emacs.d/elpa/org-20190218/org-mhe hides /home/mah/work/code/emacs/lisp/org/org-mhe
/home/mah/.emacs.d/elpa/org-20190218/ob-ledger hides /home/mah/work/code/emacs/lisp/org/ob-ledger
/home/mah/.emacs.d/elpa/org-20190218/org-archive hides /home/mah/work/code/emacs/lisp/org/org-archive
/home/mah/.emacs.d/elpa/org-20190218/ob-clojure hides /home/mah/work/code/emacs/lisp/org/ob-clojure
/home/mah/.emacs.d/elpa/org-20190218/org-habit hides /home/mah/work/code/emacs/lisp/org/org-habit
/home/mah/.emacs.d/elpa/org-20190218/ob-perl hides /home/mah/work/code/emacs/lisp/org/ob-perl
/home/mah/.emacs.d/elpa/org-20190218/ob-sql hides /home/mah/work/code/emacs/lisp/org/ob-sql
/home/mah/.emacs.d/elpa/org-20190218/ox-ascii hides /home/mah/work/code/emacs/lisp/org/ox-ascii
/home/mah/.emacs.d/elpa/org-20190218/ob-screen hides /home/mah/work/code/emacs/lisp/org/ob-screen
/home/mah/.emacs.d/elpa/org-20190218/ob-abc hides /home/mah/work/code/emacs/lisp/org/ob-abc
/home/mah/.emacs.d/elpa/org-20190218/ox-texinfo hides /home/mah/work/code/emacs/lisp/org/ox-texinfo
/home/mah/.emacs.d/elpa/org-20190218/ob-ruby hides /home/mah/work/code/emacs/lisp/org/ob-ruby
/home/mah/.emacs.d/elpa/org-20190218/ob-ocaml hides /home/mah/work/code/emacs/lisp/org/ob-ocaml
/home/mah/.emacs.d/elpa/org-20190218/ob-scheme hides /home/mah/work/code/emacs/lisp/org/ob-scheme
/home/mah/.emacs.d/elpa/org-20190218/ob-core hides /home/mah/work/code/emacs/lisp/org/ob-core
/home/mah/.emacs.d/elpa/org-20190218/ox-man hides /home/mah/work/code/emacs/lisp/org/ox-man
/home/mah/.emacs.d/elpa/org-20190218/org-list hides /home/mah/work/code/emacs/lisp/org/org-list
/home/mah/.emacs.d/elpa/org-20190218/ob-dot hides /home/mah/work/code/emacs/lisp/org/ob-dot
/home/mah/.emacs.d/elpa/org-20190218/org-eww hides /home/mah/work/code/emacs/lisp/org/org-eww
/home/mah/.emacs.d/elpa/org-20190218/ob-makefile hides /home/mah/work/code/emacs/lisp/org/ob-makefile
/home/mah/.emacs.d/elpa/org-20190218/ob-shell hides /home/mah/work/code/emacs/lisp/org/ob-shell
/home/mah/.emacs.d/elpa/org-20190218/org-duration hides /home/mah/work/code/emacs/lisp/org/org-duration
/home/mah/.emacs.d/elpa/org-20190218/ob-ref hides /home/mah/work/code/emacs/lisp/org/ob-ref
/home/mah/.emacs.d/elpa/org-20190218/org-capture hides /home/mah/work/code/emacs/lisp/org/org-capture
/home/mah/.emacs.d/elpa/org-20190218/org-bbdb hides /home/mah/work/code/emacs/lisp/org/org-bbdb
/home/mah/.emacs.d/elpa/org-20190218/ob-awk hides /home/mah/work/code/emacs/lisp/org/ob-awk
/home/mah/.emacs.d/elpa/org-20190218/ob-eval hides /home/mah/work/code/emacs/lisp/org/ob-eval
/home/mah/.emacs.d/elpa/org-20190218/org-macs hides /home/mah/work/code/emacs/lisp/org/org-macs
/home/mah/.emacs.d/elpa/org-20190218/ob-maxima hides /home/mah/work/code/emacs/lisp/org/ob-maxima
/home/mah/.emacs.d/elpa/org-20190218/ob-python hides /home/mah/work/code/emacs/lisp/org/ob-python
/home/mah/.emacs.d/elpa/org-20190218/org-src hides /home/mah/work/code/emacs/lisp/org/org-src
/home/mah/.emacs.d/elpa/org-20190218/org-info hides /home/mah/work/code/emacs/lisp/org/org-info
/home/mah/.emacs.d/elpa/org-20190218/ox-publish hides /home/mah/work/code/emacs/lisp/org/ox-publish
/home/mah/.emacs.d/elpa/org-20190218/org-agenda hides /home/mah/work/code/emacs/lisp/org/org-agenda
/home/mah/.emacs.d/elpa/org-20190218/org-bibtex hides /home/mah/work/code/emacs/lisp/org/org-bibtex
/home/mah/.emacs.d/elpa/org-20190218/ob-sqlite hides /home/mah/work/code/emacs/lisp/org/ob-sqlite
/home/mah/.emacs.d/elpa/org-20190218/ob-coq hides /home/mah/work/code/emacs/lisp/org/ob-coq
/home/mah/.emacs.d/elpa/org-20190218/ob-exp hides /home/mah/work/code/emacs/lisp/org/ob-exp
/home/mah/.emacs.d/elpa/org-20190218/org-feed hides /home/mah/work/code/emacs/lisp/org/org-feed
/home/mah/.emacs.d/elpa/org-20190218/ox-html hides /home/mah/work/code/emacs/lisp/org/ox-html
/home/mah/.emacs.d/elpa/org-20190218/ob-emacs-lisp hides /home/mah/work/code/emacs/lisp/org/ob-emacs-lisp
/home/mah/.emacs.d/elpa/org-20190218/ob-ebnf hides /home/mah/work/code/emacs/lisp/org/ob-ebnf
/home/mah/.emacs.d/elpa/org-20190218/ob-table hides /home/mah/work/code/emacs/lisp/org/ob-table
/home/mah/.emacs.d/elpa/org-20190218/org-indent hides /home/mah/work/code/emacs/lisp/org/org-indent
/home/mah/.emacs.d/elpa/org-20190218/ob-asymptote hides /home/mah/work/code/emacs/lisp/org/ob-asymptote
/home/mah/.emacs.d/elpa/org-20190218/ox-org hides /home/mah/work/code/emacs/lisp/org/ox-org
/home/mah/.emacs.d/elpa/org-20190218/org-lint hides /home/mah/work/code/emacs/lisp/org/org-lint
/home/mah/.emacs.d/elpa/org-20190218/ob-hledger hides /home/mah/work/code/emacs/lisp/org/ob-hledger
/home/mah/.emacs.d/elpa/org-20190218/ox hides /home/mah/work/code/emacs/lisp/org/ox
/home/mah/.emacs.d/elpa/org-20190218/ox-md hides /home/mah/work/code/emacs/lisp/org/ox-md
/home/mah/.emacs.d/elpa/org-20190218/ob-vala hides /home/mah/work/code/emacs/lisp/org/ob-vala
/home/mah/.emacs.d/elpa/org-20190218/org-ctags hides /home/mah/work/code/emacs/lisp/org/org-ctags
/home/mah/.emacs.d/elpa/org-20190218/org-compat hides /home/mah/work/code/emacs/lisp/org/org-compat
/home/mah/.emacs.d/elpa/org-20190218/ob-sass hides /home/mah/work/code/emacs/lisp/org/ob-sass
/home/mah/.emacs.d/elpa/org-20190218/ob-sed hides /home/mah/work/code/emacs/lisp/org/ob-sed
/home/mah/.emacs.d/elpa/org-20190218/org-loaddefs hides /home/mah/work/code/emacs/lisp/org/org-loaddefs
/home/mah/.emacs.d/elpa/org-20190218/org-w3m hides /home/mah/work/code/emacs/lisp/org/org-w3m
/home/mah/.emacs.d/elpa/org-20190218/org-protocol hides /home/mah/work/code/emacs/lisp/org/org-protocol
/home/mah/.emacs.d/elpa/org-20190218/org hides /home/mah/work/code/emacs/lisp/org/org
/home/mah/.emacs.d/elpa/org-20190218/ob-js hides /home/mah/work/code/emacs/lisp/org/ob-js
/home/mah/.emacs.d/elpa/org-20190218/org-clock hides /home/mah/work/code/emacs/lisp/org/org-clock
/home/mah/.emacs.d/elpa/org-20190218/ob-gnuplot hides /home/mah/work/code/emacs/lisp/org/ob-gnuplot
/home/mah/.emacs.d/elpa/org-20190218/ob-stan hides /home/mah/work/code/emacs/lisp/org/ob-stan
/home/mah/.emacs.d/elpa/org-20190218/org-timer hides /home/mah/work/code/emacs/lisp/org/org-timer
/home/mah/.emacs.d/elpa/org-20190218/org-docview hides /home/mah/work/code/emacs/lisp/org/org-docview
/home/mah/.emacs.d/elpa/org-20190218/org-inlinetask hides /home/mah/work/code/emacs/lisp/org/org-inlinetask
/home/mah/.emacs.d/elpa/org-20190218/ob hides /home/mah/work/code/emacs/lisp/org/ob
/home/mah/.emacs.d/elpa/org-20190218/org-gnus hides /home/mah/work/code/emacs/lisp/org/org-gnus
/home/mah/.emacs.d/elpa/org-20190218/ob-java hides /home/mah/work/code/emacs/lisp/org/ob-java
/home/mah/.emacs.d/elpa/org-20190218/org-colview hides /home/mah/work/code/emacs/lisp/org/org-colview
/home/mah/.emacs.d/elpa/org-20190218/ob-comint hides /home/mah/work/code/emacs/lisp/org/ob-comint
/home/mah/.emacs.d/elpa/org-20190218/org-version hides /home/mah/work/code/emacs/lisp/org/org-version
/home/mah/.emacs.d/elpa/org-20190218/ob-lua hides /home/mah/work/code/emacs/lisp/org/ob-lua
/home/mah/.emacs.d/elpa/org-20190218/ob-keys hides /home/mah/work/code/emacs/lisp/org/ob-keys
/home/mah/.emacs.d/elpa/org-20190218/org-id hides /home/mah/work/code/emacs/lisp/org/org-id
/home/mah/.emacs.d/elpa/org-20190218/ob-octave hides /home/mah/work/code/emacs/lisp/org/ob-octave

Features:
(shadow sort bbdb-message mail-extr whitespace cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
vc-annotate vc vc-dispatcher emacsbug sendmail winner helm-command
helm-elisp helm-eval edebug backtrace helm-info helm-mode helm-files
helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp
helm-utils helm-types helm-help helm-posframe posframe helm helm-source
helm-multi-match helm-lib compile time-stamp magit-extras magit-gitflow
ivy delsel colir ivy-overlay ffap flycheck elec-pair default cperl-mode
ps-print ps-print-loaddefs ps-def lpr eieio-opt speedbar sb-image
ezimage dframe face-remap spaceline-all-the-icons
spaceline-all-the-icons-separators spaceline-all-the-icons-segments
all-the-icons all-the-icons-faces data-material data-weathericons
data-octicons data-fileicons data-faicons data-alltheicons memoize
spaceline powerline powerline-separators powerline-themes
quelpa-use-package quelpa lisp-mnt help-fns radix-tree gnus-icalendar
org-capture gnus-art mm-uu mml2015 mm-view mml-smime smime dig cus-edit
ispell view cal-china lunar solar cal-dst cal-hebrew cal-julian holidays
hol-loaddefs org-duration org-journal org-crypt cal-iso org-bullets
org-indent org-eww org-rmail org-mhe org-irc org-info org-gnus nnir
org-docview doc-view jka-compr image-mode org-bibtex bibtex org-bbdb
org-w3m poly-org polymode poly-lock polymode-base polymode-weave
polymode-export polymode-compat polymode-methods polymode-core
polymode-classes eieio-custom eieio-base git-auto-commit-mode vc-git
appt alert log4e notifications gntp flx-ido flx yahoo-weather
magit-gerrit magithub magithub-dash magithub-notification magithub-orgs
magithub-issue-tricks magithub-issue-post magithub-edit-mode
magithub-repo magithub-ci magithub-issue magithub-label magithub-user
magithub-core magithub-faces magithub-settings recentf tree-widget
markdown-mode color bug-reference ghub+ apiwrap ghub-graphql treepy
gsexp ghub url-http url-gw nsm url-auth let-alist gnutls s
magit-rockstar magit-tramp docker-tramp tramp-cache tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat orgit 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 remember-theme twittering-mode url
url-proxy url-privacy url-expand url-history url-cookie url-domsuf
url-util mailcap tabify xmlunicode quail xmlunicode-missing-list
xmlunicode-character-list php-extras thingatpt company loccur org-mime
ox-org ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util
rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox org-element avl-tree
generator org-habit org-agenda org-tempo tempo org org-macro
org-footnote org-pcomplete org-list org-faces org-entities org-version
ob-ditaa ob-shell ob-dot ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint ob-emacs-lisp ob-core ob-eval org-compat
org-macs org-loaddefs find-func gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time
gnus-spec gnus-int gnus-range gnus-win noutline outline bbdb-mua
bbdb-com bbdb bbdb-site timezone icalendar diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs edmacro kmacro windmove dbus xml time
url-methods use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key use-package-core
whiteboard-theme magit-wip magit-log which-func imenu magit-diff
smerge-mode diff-mode git-commit log-edit message rmc puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader pcvs-util
add-log magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor async-bytecomp async shell
pcomplete comint ring server ansi-color magit-mode transient format-spec
magit-git magit-section magit-utils crm ido help-at-pt gnus nnheader
gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
text-property-search time-date mail-utils mm-util mail-prsvr wid-edit
emojify advice apropos tar-mode arc-mode archive-mode ht direnv dash
auto-compile easy-mmode packed pcase allout cus-load finder-inf
mule-util debian-el gh-common marshal eieio-compat rx cl-extra help-mode
org2blog-autoloads cl info package easymenu epg-config 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 cus-start 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 menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer 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 xwidget-internal cairo
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1940480 240665)
 (symbols 48 71107 7)
 (strings 32 494718 23323)
 (string-bytes 1 20345025)
 (vectors 16 120321)
 (vector-slots 8 4014965 165996)
 (floats 8 2199 1055)
 (intervals 56 28688 10399)
 (buffers 992 61))

-- 
http://hexmode.com/

Whoever closes his ear to the cry of the poor will himself call out
and not be answered.  — Proverbs 21:13