Mercurial > emacs
changeset 20420:6cb3b9732db5
Deal with `#'s in variable references.
author | Simon Marshall <simon@gnu.org> |
---|---|
date | Thu, 04 Dec 1997 19:47:59 +0000 |
parents | 28110a85d23e |
children | 6d1f6745878f |
files | lisp/progmodes/sh-script.el |
diffstat | 1 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/sh-script.el Thu Dec 04 17:45:22 1997 +0000 +++ b/lisp/progmodes/sh-script.el Thu Dec 04 19:47:59 1997 +0000 @@ -628,7 +628,14 @@ (defconst sh-font-lock-syntactic-keywords ;; Mark a `#' character as having punctuation syntax in a variable reference. - '(("\\$[({]?\\(#\\)" 1 (1 . nil)))) + ;; Really we should do this properly. From Chet Ramey and Brian Fox: + ;; "A `#' begins a comment when it is unquoted and at the beginning of a + ;; word. In the shell, words are separated by metacharacters." + ;; To do this in a regexp would be slow as it would be anchored to the right. + ;; But I can't be bothered to write a function to do it properly and + ;; efficiently. So we only do it properly for `#' in variable references and + ;; do it efficiently by anchoring the regexp to the left. + '(("\\${?[^}#\n\t ]*\\(##?\\)" 1 (1 . nil)))) ;; mode-command and utility functions