# HG changeset patch # User Richard M. Stallman # Date 908909413 0 # Node ID f12ae4499ae072d556682fa0be9f354845638d75 # Parent 8f220d8d170d2711642e6430a114e01a7e3081c8 (sh-mode): Handle .spec and .mspec files. (sh-font-lock-keywords): Handle rpm and rpm2. (sh-ancestor-alist): Handle rpm. diff -r 8f220d8d170d -r f12ae4499ae0 lisp/progmodes/sh-script.el --- a/lisp/progmodes/sh-script.el Tue Oct 20 18:48:06 1998 +0000 +++ b/lisp/progmodes/sh-script.el Tue Oct 20 18:50:13 1998 +0000 @@ -80,7 +80,8 @@ (tcsh . csh) (wksh . ksh88) (wsh . sh) - (zsh . ksh88)) + (zsh . ksh88) + (rpm . sh)) "*Alist showing the direct ancestor of various shells. This is the basis for `sh-feature'. See also `sh-alias-alist'. By default we have the following three hierarchies: @@ -634,7 +635,11 @@ (shell eval sh-append executable-font-lock-keywords '("\\\\[^A-Za-z0-9]" 0 font-lock-string-face) '("\\${?\\([A-Za-z_][A-Za-z0-9_]*\\|[0-9]+\\|[$*_]\\)" 1 - font-lock-variable-name-face))) + font-lock-variable-name-face)) + (rpm eval sh-append rpm2 + '("%{?\\(\\sw+\\)" 1 font-lock-keyword-face)) + (rpm2 eval sh-append shell + '("^\\(\\sw+\\):" 1 font-lock-variable-name-face))) "Default expressions to highlight in Shell Script modes. See `sh-feature'.") (defvar sh-font-lock-keywords-1 @@ -768,8 +773,10 @@ (let ((interpreter (save-excursion (goto-char (point-min)) - (if (looking-at "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)") - (match-string 2))))) + (cond ((looking-at "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)") + (match-string 2)) + ((string-match "\\.m?spec$" buffer-file-name) + "rpm"))))) (if interpreter (sh-set-shell interpreter nil nil) (progn