chiark / gitweb /
Correct quoting of include-lookup directory. Closes:#837391. (With new directives...
[userv.git] / parser.c
index 1bdf56d3441188e25a958b715100685fcfd6a860..4565e3288233975bfa90cf9f4d6d88dbdc719cf7 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -1034,6 +1034,15 @@ x_err:
   return r;
 }
 
+static int oldquote = 0;
+
+int dfg_lookupquotemode(int dtoken) {
+  int r;
+  r= pa_mnl(); if (r) return r;
+  oldquote = dtoken == tokv_word_includelookupquoteold;
+  return r;
+}
+
 int df_includelookup(int dtoken) {
   static char *buildbuf=0;
   int buildbuflen=0;
@@ -1085,9 +1094,11 @@ int df_includelookup(int dtoken) {
          if (c=='/') {
            *q++= ':';
            c= '-';
-         } else if (!((c >= '0' && c <= '9') ||
+         } else if (oldquote ?
+                    !((c >= '0' && c <= '9') ||
                       (c >= 'a' && c <= 'z') ||
-                      c == '-' || c == '_')) {
+                      c == '-' || c == '_') :
+                    (c==':')) {
            *q++= ':';
          }
          *q++= c;