diff --git a/elements/core/tentacles/entropy-emacs-basic.el b/elements/core/tentacles/entropy-emacs-basic.el index 1346cbc7..be01bb87 100644 --- a/elements/core/tentacles/entropy-emacs-basic.el +++ b/elements/core/tentacles/entropy-emacs-basic.el @@ -3697,7 +3697,9 @@ mechanism as older ver." (unless (eq major-mode 'image-dired-thumbnail-mode) (image-dired-thumbnail-mode)) (entropy/emacs--image-dired-update-thumbnail-buffname-core - buf)) + buf) + (entropy/emacs-set-buffer-local-fallback-default-directory + temporary-file-directory)) buf)) (advice-add 'image-dired-create-thumbnail-buffer :override diff --git a/elements/core/wasteland/func-binds/entropy-emacs-defun.el b/elements/core/wasteland/func-binds/entropy-emacs-defun.el index 1b942c66..033ec378 100644 --- a/elements/core/wasteland/func-binds/entropy-emacs-defun.el +++ b/elements/core/wasteland/func-binds/entropy-emacs-defun.el @@ -4362,6 +4362,31 @@ See also `entropy/emacs-return-as-default-directory'." `(entropy/emacs-return-as-default-directory ,@body)))) +(defun entropy/emacs-set-buffer-local-fallback-default-directory + (fallback-default-directory) + "Made buffer-local `default-directory' fallback to +FALLBACK-DEFAULT-DIRECTORY only when the current one is not +existed. + +This function existed since many occasions in emacs calling +process within a buffer whose `default-directory' is missing, and +the whole procedure failed due to this but the exact procedure +was not related to that default-directory i.e. they can be ran +successfully in any place as `default-directory'." + (let ((cdfd (entropy/emacs-return-as-default-directory + default-directory)) + fdfd) + (unless (file-directory-p cdfd) + (setq fdfd + (entropy/emacs-return-as-default-directory + fallback-default-directory)) + (if (file-directory-p fdfd) + (setq-local default-directory fdfd) + (signal 'file-missing + (list "Setting fallback current directory" + "No such file or directory" + fdfd)))))) + (defun entropy/emacs-apply-func-with-fallback-default-directory (fn fallback-default-directory &rest args) "Apply function FN with ARGS as normal with current