From: Fabian Keil <fk@fabiankeil.de>
Date: Sat, 24 Nov 2012 13:59:00 +0000 (+0000)
Subject: Allow closing curly braces as part of action values as long as they are escaped
X-Git-Tag: v_3_0_20~166
X-Git-Url: http://www.privoxy.org/gitweb/%22https:/faq/@default-cgi@/developer-manual/static/diff?a=commitdiff_plain;h=323843d00385820215f70f11e390e14ab44ccf09;p=privoxy.git

Allow closing curly braces as part of action values as long as they are escaped
---

diff --git a/actions.c b/actions.c
index adb2f3c8..f0898367 100644
--- a/actions.c
+++ b/actions.c
@@ -1,4 +1,4 @@
-const char actions_rcs[] = "$Id: actions.c,v 1.85 2012/11/11 12:36:45 fabiankeil Exp $";
+const char actions_rcs[] = "$Id: actions.c,v 1.86 2012/11/11 12:37:10 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/actions.c,v $
@@ -395,7 +395,17 @@ jb_err get_action_token(char **line, char **name, char **value)
    str++;
    *value = str;
 
-   str = strchr(str, '}');
+   /* The value ends with the first non-escaped closing curly brace */
+   while ((str = strchr(str, '}')) != NULL)
+   {
+      if (str[-1] == '\\')
+      {
+         /* Overwrite the '\' so the action doesn't see it. */
+         string_move(str-1, str);
+         continue;
+      }
+      break;
+   }
    if (str == NULL)
    {
       /* error */