GNU bug report logs - #77263
MH-E: want all folder buffers to use $HOME as default-directory

Previous Next

Package: emacs;

Reported by: Stephen Gildea <stepheng+emacs <at> gildea.com>

Date: Tue, 25 Mar 2025 21:08:02 UTC

Severity: wishlist

Tags: patch

Found in version 30.1

Done: Stephen Gildea <stepheng+emacs <at> gildea.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Bill Wohler <wohler <at> newt.com>
To: Stephen Gildea <stepheng+emacs <at> gildea.com>
Cc: 77263 <at> debbugs.gnu.org
Subject: bug#77263: MH-E: want all folder buffers to use $HOME as default-directory
Date: Wed, 26 Mar 2025 20:58:53 -0700
Stephen Gildea <stepheng+emacs <at> gildea.com> wrote:

> Eli Zaretskii <eliz <at> gnu.org> wrote:
> 
> >   I wonder if calling cd-absolute here is really a good idea.  That
> >   function could signal an error, and it insists on the directory being
> >   an existing accessible directory.  Is it a good idea to potentially
> >   screw up starting MH-E if the directory happens to be problematic?
> >   Why not simply set the default-directory of the buffer instead?
> 
> I had not realized that 'cd-absolute' had issues when called
> from Lisp.  Here is a revised version of my patch:

I applied this patch and it fixes a long-standing issue I've had with
MH-E. Does this work for you, Eli?

Thanks, Stephen!

> diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
> index e507996c581..f64b02c7bca 100644
> --- a/lisp/mh-e/mh-e.el
> +++ b/lisp/mh-e/mh-e.el
> @@ -144,6 +144,10 @@ mh-lib-progs
>  ;;;###autoload
>  (put 'mh-lib-progs 'risky-local-variable t)
>  
> +(defvar mh-default-directory "~/"
> +  "Default directory for MH-E folder buffers.
> +Set to nil to have MH-E buffers inherit default-directory.")
> +
>  ;; Profile Components
>  
>  (defvar mh-draft-folder nil
> @@ -438,6 +442,12 @@ mh-list-to-string-1
>               (error "Bad element: %s" element))))
>      new-list))
>  
> +(defun mh-set-default-directory ()
> +  "Set `default-directory' to `mh-default-directory' unless it is nil."
> +  (when (stringp mh-default-directory)
> +    (setq default-directory (file-name-as-directory
> +                             (expand-file-name mh-default-directory)))))
> +
>  
>  
>  ;;; MH-E Process Support
> diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el
> index 5009c2c4f98..e0c53724f9c 100644
> --- a/lisp/mh-e/mh-folder.el
> +++ b/lisp/mh-e/mh-folder.el
> @@ -51,9 +51,12 @@ mh-rmail
>    (interactive "P")
>    (mh-find-path)
>    (if arg
> -      (call-interactively 'mh-visit-folder)
> +      (progn
> +        (call-interactively 'mh-visit-folder)
> +        (mh-set-default-directory))
>      (unless (get-buffer mh-inbox)
> -      (mh-visit-folder mh-inbox (symbol-name mh-unseen-seq)))
> +      (mh-visit-folder mh-inbox (symbol-name mh-unseen-seq))
> +      (mh-set-default-directory))
>      (mh-inc-folder)))
>  
>  ;;;###autoload
> @@ -67,6 +70,7 @@ mh-nmail
>    (mh-find-path)                        ; init mh-inbox
>    (if arg
>        (call-interactively 'mh-visit-folder)
> -    (mh-visit-folder mh-inbox)))
> +    (mh-visit-folder mh-inbox))
> +  (mh-set-default-directory))
>  
>  
> 

-- 
Bill Wohler <wohler <at> newt.com> aka <Bill.Wohler <at> nasa.gov>
http://www.newt.com/wohler/, GnuPG ID:610BD9AD




This bug report was last modified 53 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.