From 28e539e13eca7e4cc0663804435f2c1b133f8362 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 17 May 2025 14:23:34 -0400 Subject: [PATCH] editorconfig.el: Fix bug#78097 When there is no `.editorconfig` variable, the `file-name-directory` call can signal an error, but that can happen only if `editorconfig-get-local-variables-functions` added entries "out of thin air". So just skip running that hook to avoid this corner case. * lisp/editorconfig.el (editorconfig--get-dir-local-variables): Don't run `editorconfig-get-local-variables-functions` when we found no EditorConfig settings. (cherry picked from commit 28a8bd6061d99c71ca2ac17868dfc8cf36a1c728) --- lisp/editorconfig.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/editorconfig.el b/lisp/editorconfig.el index 0c219e13e4e..48e69e6180c 100644 --- a/lisp/editorconfig.el +++ b/lisp/editorconfig.el @@ -703,7 +703,8 @@ Meant to be used on `auto-coding-functions'." Meant to be used on `hack-dir-local-get-variables-functions'." (when (stringp buffer-file-name) (let* ((props (editorconfig-call-get-properties-function buffer-file-name)) - (alist (editorconfig--get-local-variables props))) + (alist (if (< 0 (hash-table-count props)) + (editorconfig--get-local-variables props)))) ;; FIXME: If there's `/foo/.editorconfig', `/foo/bar/.dir-locals.el', ;; and `/foo/bar/baz/.editorconfig', it would be nice to return two ;; pairs here, so that hack-dir-local can give different priorities -- 2.39.5