# HG changeset patch # User Richard M. Stallman # Date 821380299 0 # Node ID fa30f75285025aed6b18c12b0d6f58af05ba9247 # Parent 4d7b8a3fe2402c08d9aa5c6e61897411afe47067 (sh-mode): Don't move point. (sh-set-shell): New args NO-QUERY-FLAG and INSERT-FLAG. Pass them to executable-set-magic. Really set font-lock-syntax-table. Slight cleanups. diff -r 4d7b8a3fe240 -r fa30f7528502 lisp/progmodes/sh-script.el --- a/lisp/progmodes/sh-script.el Thu Jan 11 17:05:41 1996 +0000 +++ b/lisp/progmodes/sh-script.el Thu Jan 11 17:11:39 1996 +0000 @@ -639,13 +639,14 @@ (current-column))))) skeleton-filter 'sh-feature skeleton-newline-indent-rigidly t) - ;; parse or insert magic number for exec() and set all variables depending - ;; on the shell thus determined - (goto-char (point-min)) - (sh-set-shell - (if (looking-at "#![\t ]*\\([^\t\n ]+\\)") - (match-string 1) - sh-shell-file)) + (save-excursion + ;; parse or insert magic number for exec() and set all variables depending + ;; on the shell thus determined + (goto-char (point-min)) + (sh-set-shell + (if (looking-at "#![\t ]*\\([^\t\n ]+\\)") + (match-string 1) + sh-shell-file))) (run-hooks 'sh-mode-hook)) ;;;###autoload (defalias 'shell-script-mode 'sh-mode) @@ -692,29 +693,28 @@ (sh-font-lock-keywords-1 t)) -(defun sh-set-shell (shell) +(defun sh-set-shell (shell &optional no-query-flag insert-flag) "Set this buffer's shell to SHELL (a string). Makes this script executable via `executable-set-magic'. Calls the value of `sh-set-shell-hook' if set." (interactive (list (completing-read "Name or path of shell: " interpreter-mode-alist - (lambda (x) (eq (cdr x) 'sh-mode))))) - (if (eq this-command 'sh-set-shell) - ;; prevent querying - (setq this-command 'executable-set-magic)) + (lambda (x) (eq (cdr x) 'sh-mode))) + (eq executable-query 'function) + t)) (setq sh-shell (intern (file-name-nondirectory shell)) sh-shell (or (cdr (assq sh-shell sh-alias-alist)) - sh-shell) - sh-shell-file (executable-set-magic shell (sh-feature sh-shell-arg)) + sh-shell)) + (setq sh-shell-file (executable-set-magic shell (sh-feature sh-shell-arg))) + (setq require-final-newline (sh-feature sh-require-final-newline) ;;; local-abbrev-table (sh-feature sh-abbrevs) - require-final-newline (sh-feature sh-require-final-newline) font-lock-keywords nil ; force resetting + font-lock-syntax-table nil comment-start-skip (concat (sh-feature sh-comment-prefix) "#+[\t ]*") mode-line-process (format "[%s]" sh-shell) process-environment (default-value 'process-environment) shell (sh-feature sh-variables)) (set-syntax-table (sh-feature sh-mode-syntax-table)) - (setq font-lock-syntax-table) (save-excursion (while (search-forward "=" nil t) (sh-assignment 0)))