Inverse condition to avoid nesting in test(1)
This commit is contained in:
parent
c55948ba91
commit
af1fb0c9c2
48
test.c
48
test.c
|
@ -113,32 +113,32 @@ binary(const char *arg1, const char *op, const char *arg2)
|
||||||
};
|
};
|
||||||
|
|
||||||
for (i = 0; i < LEN(optexts); i++) {
|
for (i = 0; i < LEN(optexts); i++) {
|
||||||
if (strcmp(op, optexts[i]) == 0) {
|
if (strcmp(op, optexts[i]) != 0)
|
||||||
oper = i;
|
continue;
|
||||||
|
oper = i;
|
||||||
|
switch (oper) {
|
||||||
|
case STREQ:
|
||||||
|
return strcmp(arg1, arg2) == 0;
|
||||||
|
case STRNE:
|
||||||
|
return strcmp(arg1, arg2) != 0;
|
||||||
|
default:
|
||||||
|
narg1 = estrtol(arg1, 0);
|
||||||
|
narg2 = estrtol(arg2, 0);
|
||||||
switch (oper) {
|
switch (oper) {
|
||||||
case STREQ:
|
case EQ:
|
||||||
return strcmp(arg1, arg2) == 0;
|
return narg1 == narg2;
|
||||||
case STRNE:
|
case GE:
|
||||||
return strcmp(arg1, arg2) != 0;
|
return narg1 >= narg2;
|
||||||
|
case GT:
|
||||||
|
return narg1 > narg2;
|
||||||
|
case LE:
|
||||||
|
return narg1 <= narg2;
|
||||||
|
case LT:
|
||||||
|
return narg1 < narg2;
|
||||||
|
case NE:
|
||||||
|
return narg1 != narg2;
|
||||||
default:
|
default:
|
||||||
narg1 = estrtol(arg1, 0);
|
usage();
|
||||||
narg2 = estrtol(arg2, 0);
|
|
||||||
switch (oper) {
|
|
||||||
case EQ:
|
|
||||||
return narg1 == narg2;
|
|
||||||
case GE:
|
|
||||||
return narg1 >= narg2;
|
|
||||||
case GT:
|
|
||||||
return narg1 > narg2;
|
|
||||||
case LE:
|
|
||||||
return narg1 <= narg2;
|
|
||||||
case LT:
|
|
||||||
return narg1 < narg2;
|
|
||||||
case NE:
|
|
||||||
return narg1 != narg2;
|
|
||||||
default:
|
|
||||||
usage();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user