expr: small code shrink
This commit is contained in:
@ -277,12 +277,15 @@ static VALUE *eval7(void)
|
|||||||
|
|
||||||
static VALUE *eval6(void)
|
static VALUE *eval6(void)
|
||||||
{
|
{
|
||||||
VALUE *l, *r, *v = NULL /* silence gcc */, *i1, *i2;
|
|
||||||
static const char * const keywords[] = {
|
static const char * const keywords[] = {
|
||||||
"quote", "length", "match", "index", "substr", NULL
|
"quote", "length", "match", "index", "substr", NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
smalluint key = *G.args ? index_in_str_array(keywords, *G.args) + 1 : 0;
|
VALUE *r, *i1, *i2;
|
||||||
|
VALUE *l = l; /* silence gcc */
|
||||||
|
VALUE *v = v; /* silence gcc */
|
||||||
|
int key = *G.args ? index_in_str_array(keywords, *G.args) + 1 : 0;
|
||||||
|
|
||||||
if (key == 0) /* not a keyword */
|
if (key == 0) /* not a keyword */
|
||||||
return eval7();
|
return eval7();
|
||||||
G.args++; /* We have a valid token, so get the next argument. */
|
G.args++; /* We have a valid token, so get the next argument. */
|
||||||
@ -320,8 +323,8 @@ static VALUE *eval6(void)
|
|||||||
i2 = eval6();
|
i2 = eval6();
|
||||||
tostring(l);
|
tostring(l);
|
||||||
if (!toarith(i1) || !toarith(i2)
|
if (!toarith(i1) || !toarith(i2)
|
||||||
|| i1->u.i > (arith_t) strlen(l->u.s)
|
|| i1->u.i > (arith_t) strlen(l->u.s)
|
||||||
|| i1->u.i <= 0 || i2->u.i <= 0)
|
|| i1->u.i <= 0 || i2->u.i <= 0)
|
||||||
v = str_value("");
|
v = str_value("");
|
||||||
else {
|
else {
|
||||||
v = xmalloc(sizeof(VALUE));
|
v = xmalloc(sizeof(VALUE));
|
||||||
|
Reference in New Issue
Block a user