diff options
| author | Joakim Verona | 2013-09-12 07:46:45 +0200 |
|---|---|---|
| committer | Joakim Verona | 2013-09-12 07:46:45 +0200 |
| commit | 7701e0724215b82d2f635c19d7e7f2a9863e687c (patch) | |
| tree | b759e59df3edf3f5d661db8d24296cd3da116160 /lisp/progmodes/executable.el | |
| parent | dd30d6b73383df67468e4705492206bae6a8185c (diff) | |
| parent | 96b3f75a809761389cbbdc2eb0ed85f4559a8eef (diff) | |
| download | emacs-7701e0724215b82d2f635c19d7e7f2a9863e687c.tar.gz emacs-7701e0724215b82d2f635c19d7e7f2a9863e687c.zip | |
merge from trunk
Diffstat (limited to 'lisp/progmodes/executable.el')
| -rw-r--r-- | lisp/progmodes/executable.el | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el index a305393c7d8..7b08df8b85f 100644 --- a/lisp/progmodes/executable.el +++ b/lisp/progmodes/executable.el | |||
| @@ -269,16 +269,15 @@ file modes." | |||
| 269 | (save-restriction | 269 | (save-restriction |
| 270 | (widen) | 270 | (widen) |
| 271 | (string= "#!" (buffer-substring (point-min) (+ 2 (point-min))))) | 271 | (string= "#!" (buffer-substring (point-min) (+ 2 (point-min))))) |
| 272 | (condition-case nil | 272 | ;; Eg file-modes can return nil (bug#9879). It should not, |
| 273 | (let* ((current-mode (file-modes (buffer-file-name))) | 273 | ;; in this context, but we should handle it all the same. |
| 274 | (add-mode (logand ?\111 (default-file-modes)))) | 274 | (with-demoted-errors "Unable to make file executable: %s" |
| 275 | (or (/= (logand ?\111 current-mode) 0) | 275 | (let* ((current-mode (file-modes (buffer-file-name))) |
| 276 | (zerop add-mode) | 276 | (add-mode (logand ?\111 (default-file-modes)))) |
| 277 | (set-file-modes (buffer-file-name) | 277 | (or (/= (logand ?\111 current-mode) 0) |
| 278 | (logior current-mode add-mode)))) | 278 | (zerop add-mode) |
| 279 | ;; Eg file-modes can return nil (bug#9879). It should not, | 279 | (set-file-modes (buffer-file-name) |
| 280 | ;; in this context, but we should handle it all the same. | 280 | (logior current-mode add-mode))))))) |
| 281 | (error (message "Unable to make file executable"))))) | ||
| 282 | 281 | ||
| 283 | (provide 'executable) | 282 | (provide 'executable) |
| 284 | 283 | ||