size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
char *sub_val = NULL, *func_val = NULL;
- if (!strchr(in, '$') && !strchr(in, '&')) {
+ if (!strchr(in, '$') && !strchr(in, '^')) {
return in;
}
if (*p == '$') {
vtype = 1;
}
- if (*p == '&') {
+ if (*p == '^') {
vtype = 2;
}
char *s = p, *e, *vname, *vval = NULL;
size_t nlen;
s++;
- if (*s == '{') {
+ if (vtype == 1 && *s == '{') {
br = 1;
s++;
}
len++;
}
- if (*p == '$' || *p == '&') {
+ if (*p == '$' || *p == '^') {
p--;
} else {
*c++ = *p;