version 1.17, 2021/03/25 20:25:31 |
version 1.18, 2021/03/26 07:25:23 |
|
|
struct expentry *e1 = NULL, *e2 = NULL; |
struct expentry *e1 = NULL, *e2 = NULL; |
char *p, *begp = NULL, *endp = NULL, *regs; |
char *p, *begp = NULL, *endp = NULL, *regs; |
char expbuf[BUFSIZE], tmpbuf[BUFSIZE]; |
char expbuf[BUFSIZE], tmpbuf[BUFSIZE]; |
int i, ret, pctr, fndstart, expctr, blkid, fndend; |
int i, ret, pctr, expctr, blkid, inquote; |
int inquote; |
|
|
|
pctr = fndstart = expctr = fndend = inquote = 0; |
pctr = expctr = inquote = 0; |
blkid = 1; |
blkid = 1; |
|
|
/* |
/* |
|
|
*/ |
*/ |
p = funstr; |
p = funstr; |
|
|
for (i = 0; i < llen; ++i) { |
for (i = 0; i < llen; ++i, p++) { |
if (*p == '(') { |
if (*p == '(') { |
if (fndstart == 1) { |
if (begp != NULL) { |
if (endp == NULL) |
if (endp == NULL) |
*p = '\0'; |
*p = '\0'; |
else |
else |
|
|
cleanup(); |
cleanup(); |
return(ret); |
return(ret); |
} |
} |
begp = NULL; |
|
} |
} |
fndstart = 0; |
begp = endp = NULL; |
fndend = 0; |
|
endp = NULL; |
|
pctr++; |
pctr++; |
} else if (*p == ')') { |
} else if (*p == ')') { |
if (inquote == 1) { |
if (inquote == 1) { |
|
|
return(dobeep_msg("Opening and closing quote "\ |
return(dobeep_msg("Opening and closing quote "\ |
"char error")); |
"char error")); |
} |
} |
if (fndstart == 1) { |
if (begp != NULL) { |
if (endp == NULL) |
if (endp == NULL) |
*p = '\0'; |
*p = '\0'; |
else |
else |
|
|
return(ret); |
return(ret); |
} |
} |
} |
} |
fndstart = 0; |
begp = endp = NULL; |
fndend = 0; |
|
begp = NULL; |
|
pctr--; |
pctr--; |
} else if (*p != ' ' && *p != '\t') { |
} else if (*p != ' ' && *p != '\t') { |
if (fndstart == 0) { |
if (begp == NULL) |
fndstart = 1; |
begp = p; |
if (begp == NULL) |
|
begp = p; |
|
} |
|
if (*p == '"') { |
if (*p == '"') { |
if (inquote == 0) |
if (inquote == 0) |
inquote = 1; |
inquote = 1; |
else |
else |
inquote = 0; |
inquote = 0; |
} |
} |
fndend = 0; |
|
endp = NULL; |
endp = NULL; |
} else if (fndend == 0 && (*p == ' ' || *p == '\t')) { |
} else if (endp == NULL && (*p == ' ' || *p == '\t')) { |
*p = ' '; |
*p = ' '; |
fndend = 1; |
|
endp = p; |
endp = p; |
} else if (*p == '\t') |
} else if (*p == '\t') |
if (inquote == 0) |
if (inquote == 0) |
|
|
|
|
if (pctr == 0) |
if (pctr == 0) |
blkid++; |
blkid++; |
p++; |
|
} |
} |
|
|
if (pctr != 0) { |
if (pctr != 0) { |