bug-enscript
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-enscript] [PATCH 2/8] Add a patch from Josh Zenker for bash highlig


From: Werner Fink
Subject: [bug-enscript] [PATCH 2/8] Add a patch from Josh Zenker for bash highlight
Date: Tue, 23 Jan 2018 15:26:44 +0100

An escaped double- or single-quotation mark gets treated as the
beginning of a string, e.g.

  ntp_server=`grep '^XNTPD_INITIAL_NTPDATE=' $XNTPD_CFG | awk -F\" '{print $2}'`

Signed-off-by: Werner Fink <address@hidden>
---
 states/hl/sh.st | 33 ++++++++++++++++++++++++++++++---
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git states/hl/sh.st states/hl/sh.st
index b034f16..39c40ed 100644
--- states/hl/sh.st
+++ states/hl/sh.st
@@ -2,8 +2,21 @@
  * Name: sh
  * Description: Bourne shell programming language.
  * Author: Juergen Kahrs <address@hidden>
+ *         Josh Zenker <address@hidden>
  */
 
+state sh_string extends Highlight
+{
+  /\\\\./ {
+    language_print ($0);
+  }
+
+  sh_string_end {
+    language_print ($0);
+    return;
+  }
+}
+
 state sh extends HighlightEntry
 {
   /* Comments. */
@@ -14,11 +27,25 @@ state sh extends HighlightEntry
     comment_face (false);
   }
 
+  /* Ignore escaped quotation marks */
+  /\\\"/ {
+    language_print ($0);
+  }
+
+  /\\\'/ {
+    language_print ($0);
+  }
+
+  /\\\`/ {
+    language_print ($0);
+  }
+
   /* String constants. */
-  /\"/ {
+  /\"|'/ {
+    sh_string_end = regexp($0);
     string_face (true);
     language_print ($0);
-    call (c_string);
+    call (sh_string);
     string_face (false);
   }
 
@@ -43,7 +70,7 @@ state sh extends HighlightEntry
 
   /* Keywords. */
   /\b(CDPATH|HOME|IFS|MAIL((CHECK)?|(PATH)?)|P(ATH|S(1|2))|SH(ACCT|ELL)|\
-break|c(ase|d|ontinue)|do(ne)?|e(cho|lse|sac|val|x(ec|it|port))|f(i|or)|\
+break|c(ase|d|ontinue)|do(ne)?|e(cho|l(if|se)|sac|val|x(ec|it|port))|f(i|or)|\
 getopts|hash|i[fn]|limit|newgrp|pwd|re(ad(only)?|turn)|s(et|hift)|\
 t(est|hen|imes|rap|ype)|u(limit|mask|n(limit|set))|w(ait|hile))\b/ {
     keyword_face (true);
-- 
2.12.3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]