# HG changeset patch # User Simon Marshall # Date 864889440 0 # Node ID 58afe194f1bd23be23fa3b03413b5f3c13d18c63 # Parent 12fc8bc96c58c1593d51beed884392e66a728790 Update for syntax-table text properties. sh-script.el now directs font-lock.el to add them to instances of # which are not comments. diff -r 12fc8bc96c58 -r 58afe194f1bd lisp/progmodes/sh-script.el --- a/lisp/progmodes/sh-script.el Thu May 29 07:01:36 1997 +0000 +++ b/lisp/progmodes/sh-script.el Thu May 29 07:04:00 1997 +0000 @@ -224,7 +224,6 @@ ?\" "\"\"" ?\' "\"'" ?\` "\"`" - ?$ "\\" ; `escape' so $# doesn't start a comment ?! "_" ?% "_" ?: "_" @@ -605,15 +604,18 @@ '("\\\\[^A-Za-z0-9]" 0 font-lock-string-face) '("\\${?\\([A-Za-z_][A-Za-z0-9_]*\\|[0-9]+\\|[$*_]\\)" 1 font-lock-variable-name-face))) - "*Rules for highlighting shell scripts. See `sh-feature'.") + "Default expressions to highlight in Shell Script modes. See `sh-feature'.") (defvar sh-font-lock-keywords-1 '((sh "[ \t]in\\>")) - "*Additional rules for highlighting shell scripts. See `sh-feature'.") + "Subdued level highlighting for Shell Script modes.") (defvar sh-font-lock-keywords-2 () - "*Yet more rules for highlighting shell scripts. See `sh-feature'.") + "Gaudy level highlighting for Shell Script modes.") +(defconst sh-font-lock-syntactic-keywords + ;; Mark a `#' character as having punctuation syntax in a variable reference. + '(("\\$[({]?\\(#\\)" 1 (1 . nil)))) ;; mode-command and utility functions @@ -709,12 +711,11 @@ ;; we can't look if previous line ended with `\' comint-prompt-regexp "^[ \t]*" font-lock-defaults - `((sh-font-lock-keywords - sh-font-lock-keywords-1 - sh-font-lock-keywords-2) - nil nil - ((?/ . "w") (?~ . "w") (?. . "w") (?- . "w") (?_ . "w")) nil - (font-lock-comment-start-regexp . "#")) + '((sh-font-lock-keywords + sh-font-lock-keywords-1 sh-font-lock-keywords-2) + nil nil + ((?/ . "w") (?~ . "w") (?. . "w") (?- . "w") (?_ . "w")) nil + (font-lock-syntactic-keywords . sh-font-lock-syntactic-keywords)) skeleton-pair-alist '((?` _ ?`)) skeleton-pair-filter 'sh-quoted-p skeleton-further-elements '((< '(- (min sh-indentation @@ -727,8 +728,7 @@ (save-excursion (goto-char (point-min)) (if (looking-at "#![ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)") - (buffer-substring (match-beginning 2) - (match-end 2)))))) + (match-string 2))))) (if interpreter (sh-set-shell interpreter nil nil) ;; If we don't know the shell for this file,