=== modified file 'src/SquidString.h'
--- src/SquidString.h	2012-09-22 10:56:48 +0000
+++ src/SquidString.h	2013-02-21 02:21:23 +0000
@@ -184,6 +184,11 @@
 const char *checkNullString(const char *p);
 int stringHasWhitespace(const char *);
 int stringHasCntl(const char *);
-char *strwordtok(char *buf, char **t);
+
+/**
+ * Like strtok(start, " ") but contains a rudimentary knowledge of quoted strings and backslashing.
+ * When slashDecode parameter is set to false does NOT decode backslashes so is safe for bare backslashes.
+ */
+char *strwordtok(char *buf, char **t, bool slashDecode = true);
 
 #endif /* SQUID_STRING_H */

=== modified file 'src/String.cc'
--- src/String.cc	2012-10-04 09:14:06 +0000
+++ src/String.cc	2013-02-21 02:16:46 +0000
@@ -350,7 +350,7 @@
  * of quoting
  */
 char *
-strwordtok(char *buf, char **t)
+strwordtok(char *buf, char **t, bool slashDecode)
 {
     unsigned char *word = NULL;
     unsigned char *p = (unsigned char *) buf;
@@ -376,6 +376,7 @@
         switch (ch) {
 
         case '\\':
+            if (slashDecode) {
             ++p;
 
             switch (*p) {
@@ -396,6 +397,7 @@
                 break;
 
             }
+            }
 
             *d = ch;
             ++d;


