summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/files.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/lisp/files.el b/lisp/files.el
index bdd5604417d..84c167f756b 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -1069,6 +1069,19 @@ that are visiting the various files."
(with-current-buffer buf
(revert-buffer t t)))))
(with-current-buffer buf
+
+ ;; Check if a formerly read-only file has become
+ ;; writable and vice versa.
+ (let ((read-only (not (file-writable-p buffer-file-name))))
+ (unless (eq read-only buffer-read-only)
+ (when (or nowarn
+ (let ((question
+ (format "File %s is %s on disk. Change buffer mode? "
+ buffer-file-name
+ (if read-only "read-only" "writable"))))
+ (y-or-n-p question)))
+ (setq buffer-read-only read-only))))
+
(when (not (eq (not (null rawfile))
(not (null find-file-literally))))
(if (buffer-modified-p)