chiark
/
gitweb
/
~ian
/
userv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Correct quoting of include-lookup directory. Closes:#837391. (With new directives...
[userv.git]
/
parser.c
diff --git
a/parser.c
b/parser.c
index 257eb3e4ed808816d3ee8ca1f0ee8cc4aac48f40..4565e3288233975bfa90cf9f4d6d88dbdc719cf7 100644
(file)
--- a/
parser.c
+++ b/
parser.c
@@
-591,9
+591,7
@@
int pcf_range(int ctoken, char *const *pv, int *rtrue) {
char *ep;
unsigned long v;
char *ep;
unsigned long v;
- r= pa_mwsp(); if (r) return r;
mintoken= pa_numberdollar(&min); if (mintoken == tokv_error) return mintoken;
mintoken= pa_numberdollar(&min); if (mintoken == tokv_error) return mintoken;
- r= pa_mwsp(); if (r) return r;
maxtoken= pa_numberdollar(&max); if (maxtoken == tokv_error) return maxtoken;
r= pa_mnl(); if (r) return r;
for (pp= pv; *pp; pp++) {
maxtoken= pa_numberdollar(&max); if (maxtoken == tokv_error) return maxtoken;
r= pa_mnl(); if (r) return r;
for (pp= pv; *pp; pp++) {
@@
-1036,6
+1034,15
@@
x_err:
return r;
}
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;
int df_includelookup(int dtoken) {
static char *buildbuf=0;
int buildbuflen=0;
@@
-1087,9
+1094,11
@@
int df_includelookup(int dtoken) {
if (c=='/') {
*q++= ':';
c= '-';
if (c=='/') {
*q++= ':';
c= '-';
- } else if (!((c >= '0' && c <= '9') ||
+ } else if (oldquote ?
+ !((c >= '0' && c <= '9') ||
(c >= 'a' && c <= 'z') ||
(c >= 'a' && c <= 'z') ||
- c == '-' || c == '_')) {
+ c == '-' || c == '_') :
+ (c==':')) {
*q++= ':';
}
*q++= c;
*q++= ':';
}
*q++= c;