From: Lars Ingebrigtsen Date: Thu, 31 Oct 2019 12:07:37 +0000 (+0100) Subject: Further tweaks to sh-script \ #foo font locking X-Git-Tag: emacs-27.0.90~801 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d630a047bbba8bf0ab07250a7f750eefb3a48eae;p=emacs.git Further tweaks to sh-script \ #foo font locking * lisp/progmodes/sh-script.el (sh-syntax-propertize-function): Tweak previous \ #foo change to work on all quoted characters, but check that the backslash itself is not backslashed. Regexp from Stefan Monnier. --- diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index b2f896ecab9..6ec131980be 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -1140,8 +1140,10 @@ subshells can nest." ;; beginning of a word. In the shell, words are separated by ;; metacharacters. The list of special chars is taken from ;; the single-unix spec of the shell command language (under - ;; `quoting') but with `$' removed. - ("\\(?:[^|&;<>(`\\\"' \t\n]\\|\\${\\|\\\\ \\)\\(#+\\)" (1 "_")) + ;; `quoting') but with `$' removed. Also -- if there's something like + ;; \ #foo, then that's not a comment, unless the backslash itself + ;; is backslashed. + ("\\(?:[^|&;<>(`\\\"' \t\n]\\|\\${\\|\\(?:[^\\]\\|^\\)\\\\\\(?:\\\\\\\\\\)*.\\)\\(#+\\)" (1 "_")) ;; In addition, `#' at the beginning of closed parentheses ;; does not start a comment if the parentheses are not isolated ;; by metacharacters, excluding [()].