summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r--lisp/emacs-lisp/comp.el11
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index f027bad65cf..bd4c25a1f57 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2344,7 +2344,16 @@ queued with LOAD %"
file load (cdr entry))
;; Make sure we are not already compiling `file' (bug#40838).
(unless (gethash file comp-async-compilations)
- (setf comp-files-queue (append comp-files-queue `((,file . ,load)))))))
+ (let ((out-dir (comp-output-directory file))
+ (out-filename (comp-output-filename file)))
+ (if (or (file-writable-p out-filename)
+ (and (not (file-exists-p out-dir))
+ (file-writable-p (substring out-dir 0 -1))))
+ (setf comp-files-queue
+ (append comp-files-queue `((,file . ,load))))
+ (display-warning 'comp
+ (format "No write access for %s skipping."
+ out-filename)))))))
(when (zerop (comp-async-runnings))
(comp-run-async-workers)
(message "Compilation started."))))