Subject: bug#58748: 28.1; proced - filter : wrong-type argument symbolp

From: jeff weisberg <[email-masked]>
Date: Sun, 23 Oct 2022 14:08:58 -0400

SUMMARY
    setting the proced-filter causes an error

DETAILS
    the docstring for proced-filter says:
      "Current filter of proced listing.
       It can be the car of an element of `proced-filter-alist'.
       It can also be a list of elementary filters as in the cdrs of the elements

    but if we do so (using emacs -Q):

      (progn
        (proced)
        (proced-filter-interactive '((args . "bash"))))

    it almost works. it generates the desired filtered list, but then fails:

        Lisp error: (wrong-type-argument symbolp ((args . "bash")))

CAUSE
    in proced.el:proced-update it attempts to update the mode line

        (concat ": " (symbol-name proced-filter))

FIX
    many options. such as:
        - test if proced-filter is a symbol
        - stringify it more robustly

In GNU Emacs 28.1 (build 2, x86_64-apple-darwin17.7.0, NS appkit-1561.61 Version 10.13.6 (Build 17G14042))
 of 2022-06-02 built on arete.tcp4me.com
Windowing system distributor 'Apple', version 10.3.1561
System Description:  Mac OS X 10.13.6

Configured using:
 'configure --without-carbon --with-x --prefix=/usr/local
 --with-x-toolkit=no --with-gnutls=ifavailable
 --disable-ns-self-contained'

Configured features:
ACL GMP LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG THREADS
TOOLKIT_SCROLL_BARS ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Text

Minor modes in effect:
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  zoom-mode: t
  shell-dirtrack-mode: t
  display-battery-mode: t
  display-time-mode: t
  global-auto-revert-mode: t
  windmove-mode: t
  global-ligature-mode: t
  ligature-mode: t
  global-flycheck-mode: t
  straight-use-package-mode: t
  straight-package-neutering-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tab-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/Users/jaw/.emacs.d/straight/build/transient/transient hides /usr/local/share/emacs/28.1/lisp/transient
/Users/jaw/.emacs.d/straight/build/let-alist/let-alist hides /usr/local/share/emacs/28.1/lisp/emacs-lisp/let-alist

Features:
(shadow emacsbug mailalias smtpmail sendmail mail-extr mule-diag tabify
table mm-archive proced mode-local hl-line+ hl-line+-autoloads view
pcmpl-unix cperl-mode go-eldoc go-eldoc-autoloads wgrep grep sort
find-dired apropos cal-china cal-bahai cal-islam cal-hebrew holidays
hol-loaddefs cal-julian lunar solar cal-dst em-tramp em-xtra magit-patch
magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult
ediff-wind ediff-diff ediff-help ediff-init ediff-util time-stamp
diredfl diredfl-autoloads dired+-autoloads tls gnutls network-stream
url-http url-gw nsm url-cache url-auth hl-line color facemenu
dired-filter f f-shortdoc s dired-x dired-filter-autoloads f-autoloads
dired-subtree dired-hacks-utils dired-subtree-autoloads
dired-hacks-utils-autoloads novice all-the-icons-dired all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons
all-the-icons-dired-autoloads dired-aux all-the-icons-autoloads autoload
lisp-mnt ibuf-ext ruby-mode hippie-exp rfc2104 hydra lv doremi-cmd
cus-theme cus-edit doremi shortdoc ibuffer ibuffer-loaddefs two-column
cl-print debug backtrace repeat tramp-cmds help-fns radix-tree pp
descr-text vc-mtn vc-src vc-sccs vc-svn vc-cvs vc-rcs vc bug-reference
magit-extras face-remap magit-submodule magit-obsolete 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 package url-handlers
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
smerge-mode diff git-commit log-edit pcvs-util add-log magit-core
magit-autorevert magit-margin magit-transient magit-process with-editor
server magit-mode transient magit-git magit-base magit-section crm
compat-27 compat-26 compat sh-script smie executable misearch
multi-isearch go-mode find-file ffap etags fileloop xref project compile
generic em-unix em-term term disp-table ehelp em-script em-prompt em-ls
em-hist em-pred em-glob em-cmpl em-dirs esh-var em-basic em-banner
em-alias esh-mode eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util org-element avl-tree generator ol-eww eww
xdg url-queue thingatpt mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus
nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu
mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom
browse-url gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap
nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range message
rmc puny mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader gnus-win
gnus nnheader gnus-util rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
text-property-search mail-utils mm-util mail-prsvr wid-edit ol-docview
doc-view jka-compr image-mode exif dired dired-loaddefs ol-bibtex
ol-bbdb ol-w3m ol-doi org-link-doi cus-start cus-load zoom vc-hg vc-git
diff-mode vc-bzr vc-dispatcher tramp-cache tramp-sh tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell parse-time ls-lisp
battery dbus xml time ob-ruby ob-sqlite ob-sql ob-restclient restclient
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source eieio eieio-core
eieio-loaddefs password-cache url-vars mailcap ob-calc calc-store
calc-trail calc-ext calc calc-loaddefs rect calc-macs 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
easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-table oc-basic
bibtex iso8601 time-date ol org-keys oc org-compat advice org-macs
org-loaddefs format-spec cal-menu calendar cal-loaddefs autorevert
filenotify windmove edmacro kmacro jaw-theme jaw-theme-terminal-theme
jaw-theme-dark-theme jaw-theme-light-theme ligature mailcrypt rfc822
comint ring derived flycheck ansi-color json map find-func dash
cc-styles cc-align cc-engine cc-vars cc-defs generic-x flyspell ispell
ligature-autoloads minimap-autoloads scad-mode-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads
avy-autoloads s-autoloads git-timemachine-autoloads
expand-region-autoloads zoom-autoloads doremi-cmd-autoloads
doremi-autoloads wgrep-autoloads json-mode-autoloads rx
json-snatcher-autoloads ob-restclient-autoloads restclient-autoloads
flycheck-autoloads let-alist-autoloads pkg-info-autoloads epl-autoloads
mailcrypt-autoloads magit-autoloads git-commit-autoloads
with-editor-autoloads transient-autoloads org-roam-autoloads
magit-section-autoloads compat-autoloads emacsql-sqlite-autoloads
emacsql-autoloads dash-autoloads mmm-mode-autoloads finder-inf
go-mode-autoloads straight-autoloads info cl-seq cl-extra help-mode seq
byte-opt straight subr-x cl-macs gv cl-loaddefs cl-lib bytecomp
byte-compile cconv iso-transl tooltip eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win 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 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 emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice
button loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote threads kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 799763 145082)
 (symbols 48 56977 10)
 (strings 32 244360 14428)
 (string-bytes 1 7602180)
 (vectors 16 95989)
 (vector-slots 8 2289430 171838)
 (floats 8 1800 4093)
 (intervals 56 37064 8176)
 (buffers 992 68))