(cl-assert (null buffer-file-name))
;; Use `:safe' to find `mode:'. In case of hunk-only, use nil because
;; Local Variables list might be incomplete when context is truncated.
- (let ((enable-local-variables (unless hunk-only :safe))
+ (let ((enable-local-variables
+ (unless hunk-only
+ (if (memq enable-local-variables '(:safe :all nil))
+ enable-local-variables
+ ;; Ignore other values that query.
+ :safe)))
(buffer-file-name file))
;; Don't run hooks that might assume buffer-file-name
;; really associates buffer with a file (bug#39190).
(goto-char (point-min))
(if buffer
;; For non-interactive, skip any questions
- (let ((enable-local-variables :safe) ;; to find `mode:'
+ (let ((enable-local-variables
+ (if (memq enable-local-variables '(:safe :all nil))
+ enable-local-variables
+ ;; Ignore other values that query,
+ ;; use `:safe' to find `mode:'.
+ :safe))
(buffer-file-name file))
;; Don't run hooks that might assume buffer-file-name
;; really associates buffer with a file (bug#39190).
(ignore-errors (delay-mode-hooks (set-auto-mode))))
- (normal-mode))
+ ;; Use non-nil 'find-file' arg of 'normal-mode'
+ ;; to not ignore 'enable-local-variables' when nil.
+ (normal-mode (not enable-local-variables)))
(set-buffer-modified-p nil)
(setq buffer-read-only t)
(setq failed nil))