version 1.13, 2004/04/07 13:11:36 |
version 1.14, 2005/07/15 20:43:23 |
|
|
VarPattern *pattern; |
VarPattern *pattern; |
const char *cp, *cp2; |
const char *cp, *cp2; |
int cnt = 0; |
int cnt = 0; |
char startc = endc == ')' ? '(' : '}'; |
char startc = endc == ')' ? '(' : '{'; |
|
|
for (cp = *p;; cp++) { |
for (cp = *p;; cp++) { |
if (*cp == '=' && cnt == 0) |
if (*cp == '=' && cnt == 0) |
|
|
for (cp2 = cp+1;; cp2++) { |
for (cp2 = cp+1;; cp2++) { |
if ((*cp2 == ':' || *cp2 == endc) && cnt == 0) |
if ((*cp2 == ':' || *cp2 == endc) && cnt == 0) |
break; |
break; |
|
if (*cp2 == '\0') |
|
return NULL; |
if (*cp2 == startc) |
if (*cp2 == startc) |
cnt++; |
cnt++; |
else if (*cp2 == endc) { |
else if (*cp2 == endc) { |
|
|
if (DEBUG(VAR)) |
if (DEBUG(VAR)) |
printf("Result is \"%s\"\n", str); |
printf("Result is \"%s\"\n", str); |
} |
} |
if (*tstr == '\0') |
if (*tstr == '\0') { |
Error("Unclosed variable specification"); |
Error("Unclosed variable specification"); |
|
/* make tstr point at the last char of the variable specification */ |
|
tstr--; |
|
} |
|
|
*lengthPtr += tstr - start; |
*lengthPtr += tstr - start; |
return str; |
return str; |