Mercurial > emacs
comparison lisp/progmodes/executable.el @ 51083:52ad052cb312
(executable-set-magic): Remove unused vars `point' and `buffer-modified-p'.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sun, 18 May 2003 21:37:23 +0000 |
parents | 89f6eeae2af3 |
children | 695cf19ef79e |
comparison
equal
deleted
inserted
replaced
51082:af63282f9b8e | 51083:52ad052cb312 |
---|---|
1 ;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*- | 1 ;;; executable.el --- base functionality for executable interpreter scripts -*- byte-compile-dynamic: t -*- |
2 | 2 |
3 ;; Copyright (C) 1994, 1995, 1996, 2000 by Free Software Foundation, Inc. | 3 ;; Copyright (C) 1994, 1995, 1996, 2000, 2003 by Free Software Foundation, Inc. |
4 | 4 |
5 ;; Author: Daniel Pfeiffer <occitan@esperanto.org> | 5 ;; Author: Daniel Pfeiffer <occitan@esperanto.org> |
6 ;; Keywords: languages, unix | 6 ;; Keywords: languages, unix |
7 | 7 |
8 ;; This file is part of GNU Emacs. | 8 ;; This file is part of GNU Emacs. |
225 (string-match executable-magicless-file-regexp | 225 (string-match executable-magicless-file-regexp |
226 buffer-file-name)) | 226 buffer-file-name)) |
227 (not (or insert-flag executable-insert)) | 227 (not (or insert-flag executable-insert)) |
228 (> (point-min) 1) | 228 (> (point-min) 1) |
229 (save-excursion | 229 (save-excursion |
230 (let ((point (point-marker)) | 230 (goto-char (point-min)) |
231 (buffer-modified-p (buffer-modified-p))) | 231 (add-hook 'after-save-hook 'executable-chmod nil t) |
232 (goto-char (point-min)) | 232 (if (looking-at "#![ \t]*\\(.*\\)$") |
233 (add-hook 'after-save-hook 'executable-chmod nil t) | 233 (and (goto-char (match-beginning 1)) |
234 (if (looking-at "#![ \t]*\\(.*\\)$") | 234 ;; If the line ends in a space, |
235 (and (goto-char (match-beginning 1)) | 235 ;; don't offer to change it. |
236 ;; If the line ends in a space, | 236 (not (= (char-after (1- (match-end 1))) ?\ )) |
237 ;; don't offer to change it. | 237 (not (string= argument |
238 (not (= (char-after (1- (match-end 1))) ?\ )) | 238 (buffer-substring (point) (match-end 1)))) |
239 (not (string= argument | 239 (if (or (not executable-query) no-query-flag |
240 (buffer-substring (point) (match-end 1)))) | 240 (save-window-excursion |
241 (if (or (not executable-query) no-query-flag | 241 ;; Make buffer visible before question. |
242 (save-window-excursion | 242 (switch-to-buffer (current-buffer)) |
243 ;; Make buffer visible before question. | 243 (y-or-n-p (concat "Replace magic number by `" |
244 (switch-to-buffer (current-buffer)) | 244 executable-prefix argument "'? ")))) |
245 (y-or-n-p (concat "Replace magic number by `" | 245 (progn |
246 executable-prefix argument "'? ")))) | 246 (replace-match argument t t nil 1) |
247 (progn | 247 (message "Magic number changed to `%s'" |
248 (replace-match argument t t nil 1) | 248 (concat executable-prefix argument))))) |
249 (message "Magic number changed to `%s'" | 249 (insert executable-prefix argument ?\n) |
250 (concat executable-prefix argument))))) | 250 (message "Magic number changed to `%s'" |
251 (insert executable-prefix argument ?\n) | 251 (concat executable-prefix argument))))) |
252 (message "Magic number changed to `%s'" | |
253 (concat executable-prefix argument))) | |
254 ;;; (or insert-flag | |
255 ;;; (eq executable-insert t) | |
256 ;;; (set-buffer-modified-p buffer-modified-p)) | |
257 ))) | |
258 interpreter) | 252 interpreter) |
259 | 253 |
260 | 254 |
261 | 255 |
262 ;;;###autoload | 256 ;;;###autoload |
274 If file already has any execute bits set at all, do not change existing | 268 If file already has any execute bits set at all, do not change existing |
275 file modes." | 269 file modes." |
276 (and (>= (buffer-size) 2) | 270 (and (>= (buffer-size) 2) |
277 (save-restriction | 271 (save-restriction |
278 (widen) | 272 (widen) |
279 (string= "#!" (buffer-substring 1 3))) | 273 (string= "#!" (buffer-substring (point-min) (+ 2 (point-min))))) |
280 (let* ((current-mode (file-modes (buffer-file-name))) | 274 (let* ((current-mode (file-modes (buffer-file-name))) |
281 (add-mode (logand ?\111 (default-file-modes)))) | 275 (add-mode (logand ?\111 (default-file-modes)))) |
282 (or (/= (logand ?\111 current-mode) 0) | 276 (or (/= (logand ?\111 current-mode) 0) |
283 (zerop add-mode) | 277 (zerop add-mode) |
284 (set-file-modes (buffer-file-name) | 278 (set-file-modes (buffer-file-name) |