Package: emacs;
Reported by: Chris Siebenmann <cks.emacsbugs-01 <at> cs.toronto.edu>
Date: Wed, 22 Nov 2023 08:26:03 UTC
Severity: normal
Found in version 29.1
Done: Bill Wohler <wohler <at> newt.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Chris Siebenmann <cks.emacsbugs-01 <at> cs.toronto.edu> Subject: bug#67361: closed (Re: bug#67361: 29.1; MH-E: creating a new folder can sometimes fail with a Lisp error) Date: Tue, 16 Jan 2024 01:36:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #67361: 29.1; MH-E: creating a new folder can sometimes fail with a Lisp error 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 67361 <at> debbugs.gnu.org. -- 67361: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67361 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Bill Wohler <wohler <at> newt.com> To: Mike Kupfer <kupfer <at> rawbw.com> Cc: 67361-done <at> debbugs.gnu.org, Chris Siebenmann <cks.emacsbugs-01 <at> cs.toronto.edu>, Eli Zaretskii <eliz <at> gnu.org> Subject: Re: bug#67361: 29.1; MH-E: creating a new folder can sometimes fail with a Lisp error Date: Mon, 15 Jan 2024 17:34:45 -0800Version 30.0.50 Thanks for your patch, Mike. I did not receive approval to commit this patch to the release branch, so I committed your patch to master and closed the bug. Bill Wohler <wohler <at> newt.com> wrote: > Eli, > > Would you prefer if I applied Mike's patch to the emacs-29 branch or > master? > > > diff --git a/lisp/mh-e/mh-funcs.el b/lisp/mh-e/mh-funcs.el > > --- a/lisp/mh-e/mh-funcs.el > > +++ b/lisp/mh-e/mh-funcs.el > > @@ -108,7 +108,7 @@ > > (window-config mh-previous-window-config)) > > (mh-set-folder-modified-p t) ; lock folder to kill it > > (mh-exec-cmd-daemon "rmf" 'mh-rmf-daemon folder) > > - (when (boundp 'mh-speed-folder-map) > > + (when (and (boundp 'speedbar-buffer) speedbar-buffer) > > (mh-speed-invalidate-map folder)) > > (mh-remove-from-sub-folders-cache folder) > > (mh-set-folder-modified-p nil) ; so kill-buffer doesn't complain > > diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el > > --- a/lisp/mh-e/mh-search.el > > +++ b/lisp/mh-e/mh-search.el > > @@ -1569,7 +1569,7 @@ > > (save-excursion (mh-exec-cmd-quiet nil "rmf" chosen-name)) > > (mh-exec-cmd-quiet nil "folder" "-create" "-fast" chosen-name) > > (mh-remove-from-sub-folders-cache chosen-name) > > - (when (boundp 'mh-speed-folder-map) > > + (when (and (boundp 'speedbar-buffer) speedbar-buffer) > > (mh-speed-add-folder chosen-name)) > > chosen-name)) > > > > diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el > > --- a/lisp/mh-e/mh-utils.el > > +++ b/lisp/mh-e/mh-utils.el > > @@ -795,7 +795,7 @@ > > (message "Creating %s" folder-name) > > (mh-exec-cmd-error nil "folder" folder-name) > > (mh-remove-from-sub-folders-cache folder-name) > > - (when (boundp 'mh-speed-folder-map) > > + (when (and (boundp 'speedbar-buffer) speedbar-buffer) > > (mh-speed-add-folder folder-name)) > > (message "Creating %s...done" folder-name)) > > (new-file-flag > > > > -- > Bill Wohler <wohler <at> newt.com> aka <Bill.Wohler <at> nasa.gov> > http://www.newt.com/wohler/, GnuPG ID:610BD9AD -- Bill Wohler <wohler <at> newt.com> aka <Bill.Wohler <at> nasa.gov> http://www.newt.com/wohler/, GnuPG ID:610BD9AD
[Message part 3 (message/rfc822, inline)]
From: Chris Siebenmann <cks.emacsbugs-01 <at> cs.toronto.edu> To: bug-gnu-emacs <at> gnu.org Cc: cks.emacsbugs-01 <at> cs.toronto.edu Subject: 29.1; MH-E: creating a new folder can sometimes fail with a Lisp error Date: Tue, 21 Nov 2023 20:45:11 -0500Under some conditions, creating a new (N)MH folder in MH-E can fail with a Lisp error of 'Wrong type argument: stringp, nil'. This happens if for some reason you have loaded/required mh-speed.el but have not created a speedbar. Reproduction in 'emacs -Q', assuming you have NMH set up: * enter MH-E with M-x mh-rmail * widen to your entire inbox so you have something to refile, 'F r'. * require mh-speed: M-: (require 'mh-soeed) * select a message and refile with 'o'. When asked for the target folder, enter one that doesn't exist, say '+anewtestfolder'. Say y to have this folder created. * the refile will abort with the minibuffer message showing 'Wrong type argument: stringp, nil' The full *Messages* buffer contents are (for my test, with a slightly different folder path): Folder +misc/anewtestfolder does not exist. Create it? (y or n) y Creating +misc/anewtestfolder mh-prompt-for-folder: Wrong type argument: stringp, nil I believe the root cause of this problem is that mh-prompt-for-folder calls mh-speed-add-folder if 'mh-speed-folder-map is bound: (when (boundp 'mh-speed-folder-map) (mh-speed-add-folder folder-name)) However, mh-speed-add-folder requires that speedbar-buffer exists, as it starts with: (with-current-buffer speedbar-buffer ....) In edebug, it is this with-current-buffer call that appears to fail and produce the error message when called with no speedbar displayed and speedbar-buffer nil. Requiring or loading mh-speed without a speedbuffer displayed is probably unusual, but I need to do it in order to customize some aspects of my MH-E speedbar interface. NOTE: I have reproduced this in 'emacs -Q', but this bug report is filed from within my regular Emacs and MH-E environment, with multiple third party packages and load-file shadowing and so on. You can ignore those parts of this report. In GNU Emacs 29.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-10-30 built on comps3 Windowing system distributor 'The X.Org Foundation', version 11.0.12014000 System Description: Ubuntu 22.04.3 LTS Configured using: 'configure --prefix /u/cks/lib/x64-linux/emacs-29.1 --without-gsettings --with-x --with-x-toolkit=gtk3 --with-json --with-tree-sitter --with-native-compilation=aot' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM 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 TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_COLLATE: C value of $LC_CTYPE: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: smartparens-mode: t global-corfu-mode: t corfu-mode: t marginalia-mode: t vertico-mouse-mode: t vertico-multiform-mode: t vertico-mode: t which-key-mode: t global-flycheck-mode: t flycheck-mode: t backward-forward-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /u/cks/.emacs.d/elpa/transient-20231121.1154/transient hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/transient /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-core /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-diminish /u/cks/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/bind-key /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-lint /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-jump /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-delight /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-bind-key /u/cks/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/use-package/use-package-ensure /u/cks/.emacs.d/elpa/project-0.10.0/project hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/progmodes/project /u/cks/.emacs.d/elpa/seq-2.24/seq hides /u/cks/lib/x64-linux/emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/seq Features: (shadow mh-identity mh-letter emacsbug orderless project consult bookmark textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check shr-color color mule-util qp mm-archive mail-extr mh-seq mh-inc hl-line mh-tool-bar flyspell ispell mh-xface mh-cks mh-cks-speed mh-speed speedbar ezimage dframe gnus-icalendar org-capture org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete pcomplete comint ansi-osc ring org-list org-footnote org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-version org-compat org-macs format-spec icalendar diary-lib diary-loaddefs cal-menu calendar cal-loaddefs mh-utils mh-mime mh-acros mh-show gnus-cite gnus-art mm-uu mml2015 gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int message yank-media dired dired-loaddefs rfc822 mailabbrev gmm-utils mailheader gnus-win gnus-range gnus nnheader range wid-edit mh-comp sendmail mail-utils mh-gnus mml mm-view mml-smime mml-sec epa derived epg rfc6068 epg-config smime gnutls puny dig mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mh-folder which-func imenu gnus-util text-property-search time-date mh-scan mh-e mh-buffers mh-loaddefs goto-addr comp comp-cstr warnings icons smartparens advice loadhist thingatpt .emacs corfu marginalia vertico-mouse vertico-multiform vertico compat which-key flycheck ansi-color find-func rx dash backward-forward edmacro kmacro cl-extra help-mode pp diminish use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core finder-inf company-autoloads consult-flycheck-autoloads consult-flyspell-autoloads consult-lsp-autoloads corfu-autoloads embark-consult-autoloads consult-autoloads embark-autoloads evil-autoloads expand-region-autoloads flycheck-golangci-lint-autoloads flycheck-autoloads fold-this-autoloads go-mode-autoloads goto-chg-autoloads lsp-ui-autoloads lsp-mode-autoloads magit-autoloads pcase git-commit-autoloads magit-section-autoloads marginalia-autoloads orderless-autoloads project-autoloads markdown-mode-autoloads f-autoloads rust-mode-autoloads smartparens-autoloads transient-autoloads try-autoloads vertico-autoloads vundo-autoloads which-key-autoloads with-editor-autoloads info compat-autoloads seq-autoloads yaml-mode-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 dbusbind inotify lcms2 dynamic-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 712854 301161) (symbols 48 33375 30) (strings 32 182335 53947) (string-bytes 1 5543861) (vectors 16 81476) (vector-slots 8 1411017 522310) (floats 8 495 1417) (intervals 56 4586 1703) (buffers 984 24))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.