]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/files.el (trusted-content-p): Make `:all` work in non-file buffers
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 16 Dec 2024 14:27:01 +0000 (09:27 -0500)
committerEshel Yaron <me@eshelyaron.com>
Mon, 23 Dec 2024 15:01:34 +0000 (16:01 +0100)
(cherry picked from commit b9dc337ea7416ee7ee4d873a91f6d6d9f109c04c)

lisp/files.el

index 75b951dcdc0aca304c6e30d7d91cb24f89f0879f..8a05bda62a4598d5cff960fef132c24f35aa1b45 100644 (file)
@@ -740,26 +740,28 @@ See also `trusted-content'."
   ;; to try and avoid marking as trusted a file that's merely accessed
   ;; via a symlink that happens to be inside a trusted dir.
   (and (not untrusted-content)
-       buffer-file-truename
-       (with-demoted-errors "trusted-content-p: %S"
-         (let ((exists (file-exists-p buffer-file-truename)))
-           (or
-            (eq trusted-content :all)
-            ;; We can't avoid trusting the user's init file.
-            (if (and exists user-init-file)
-                (file-equal-p buffer-file-truename user-init-file)
-              (equal buffer-file-truename user-init-file))
-            (let ((file (abbreviate-file-name buffer-file-truename))
-                  (trusted nil))
-              (dolist (tf trusted-content)
-                (when (or (if exists (file-equal-p tf file) (equal tf file))
-                          ;; We don't use `file-in-directory-p' here, because
-                          ;; we want to err on the conservative side: "guilty
-                          ;; until proven innocent".
-                          (and (string-suffix-p "/" tf)
-                               (string-prefix-p tf file)))
-                  (setq trusted t)))
-              trusted))))))
+       (or
+        (eq trusted-content :all)
+        (and
+         buffer-file-truename
+         (with-demoted-errors "trusted-content-p: %S"
+           (let ((exists (file-exists-p buffer-file-truename)))
+             (or
+              ;; We can't avoid trusting the user's init file.
+              (if (and exists user-init-file)
+                  (file-equal-p buffer-file-truename user-init-file)
+                (equal buffer-file-truename user-init-file))
+              (let ((file (abbreviate-file-name buffer-file-truename))
+                    (trusted nil))
+                (dolist (tf trusted-content)
+                  (when (or (if exists (file-equal-p tf file) (equal tf file))
+                            ;; We don't use `file-in-directory-p' here, because
+                            ;; we want to err on the conservative side: "guilty
+                            ;; until proven innocent".
+                            (and (string-suffix-p "/" tf)
+                                 (string-prefix-p tf file)))
+                    (setq trusted t)))
+                trusted))))))))
 
 ;; This is an odd variable IMO.
 ;; You might wonder why it is needed, when we could just do: