we write the buffer to a temp file and then rename it, don't
neglect to set the new file's modes properly.
;; If writing the temp file fails,
;; delete the temp file.
(or succeed (delete-file tempname)))
+ ;; Since we have created an entirely new file
+ ;; and renamed it, make sure it gets the
+ ;; right permission bits set.
+ (setq setmodes (file-modes buffer-file-name))
;; We succeeded in writing the temp file,
;; so rename it.
(rename-file tempname buffer-file-name t))