summaryrefslogtreecommitdiff
path: root/lisp/files.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/files.el')
-rw-r--r--lisp/files.el10
1 files changed, 5 insertions, 5 deletions
diff --git a/lisp/files.el b/lisp/files.el
index ce4dd99bd53..5ceaacd744e 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2554,13 +2554,13 @@ unless NOMODES is non-nil."
(auto-save-mode 1)))
;; Make people do a little extra work (C-x C-q)
;; before altering a backup file.
- (when (backup-file-name-p buffer-file-name)
- (setq buffer-read-only t))
;; When a file is marked read-only,
;; make the buffer read-only even if root is looking at it.
- (when (and (file-modes (buffer-file-name))
- (zerop (logand (file-modes (buffer-file-name)) #o222)))
- (setq buffer-read-only t))
+ (unless buffer-read-only
+ (when (or (backup-file-name-p buffer-file-name)
+ (let ((modes (file-modes (buffer-file-name))))
+ (and modes (zerop (logand modes #o222)))))
+ (setq buffer-read-only t)))
(unless nomodes
(when (and view-read-only view-mode)
(view-mode -1))