summaryrefslogtreecommitdiffstats
path: root/common/command.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-05 18:02:18 +0200
committerSascha Hauer <sha@octopus.labnet.pengutronix.de>2007-07-05 18:02:18 +0200
commit89f0c5c94f919445e1398016be0fc97f7bada3b1 (patch)
treea30ab33a276eb73670de464b2a2103b5aacb5b2b /common/command.c
parente24bb529b18eccbe5d1082d6eed0eb7353b756e3 (diff)
downloadbarebox-89f0c5c94f919445e1398016be0fc97f7bada3b1.tar.gz
barebox-89f0c5c94f919445e1398016be0fc97f7bada3b1.tar.xz
svn_rev_701
move do_test to own file and reimplement
Diffstat (limited to 'common/command.c')
-rw-r--r--common/command.c133
1 files changed, 0 insertions, 133 deletions
diff --git a/common/command.c b/common/command.c
index 4fcf17bc66..064ab710fb 100644
--- a/common/command.c
+++ b/common/command.c
@@ -104,139 +104,6 @@ U_BOOT_CMD_START(readline)
U_BOOT_CMD_END
int
-do_test (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- char **ap;
- int left, adv, expr, last_expr, neg, last_cmp;
-
- if (*argv[0] == '[') {
- if (*argv[argc - 1] != ']') {
- printf("[: missing `]'\n");
- return 1;
- }
- argc--;
- }
-
- /* args? */
- if (argc < 3)
- return 1;
-
- last_expr = 0;
- left = argc - 1; ap = argv + 1;
- if (left > 0 && strcmp(ap[0], "!") == 0) {
- neg = 1;
- ap++;
- left--;
- } else
- neg = 0;
-
- expr = -1;
- last_cmp = -1;
- last_expr = -1;
- while (left > 0) {
-
- if (strcmp(ap[0], "-o") == 0 || strcmp(ap[0], "-a") == 0)
- adv = 1;
- else if (strcmp(ap[0], "-z") == 0 || strcmp(ap[0], "-n") == 0)
- adv = 2;
- else
- adv = 3;
-
- if (left < adv) {
- expr = 1;
- break;
- }
-
- if (adv == 1) {
- if (strcmp(ap[0], "-o") == 0) {
- last_expr = expr;
- last_cmp = 0;
- } else if (strcmp(ap[0], "-a") == 0) {
- last_expr = expr;
- last_cmp = 1;
- } else {
- expr = 1;
- break;
- }
- }
-
- if (adv == 2) {
- if (strcmp(ap[0], "-z") == 0)
- expr = strlen(ap[1]) == 0 ? 1 : 0;
- else if (strcmp(ap[0], "-n") == 0)
- expr = strlen(ap[1]) == 0 ? 0 : 1;
- else {
- expr = 1;
- break;
- }
-
- if (last_cmp == 0)
- expr = last_expr || expr;
- else if (last_cmp == 1)
- expr = last_expr && expr;
- last_cmp = -1;
- }
-
- if (adv == 3) {
- ulong a = simple_strtol(ap[0], NULL, 0);
- ulong b = simple_strtol(ap[2], NULL, 0);
- if (strcmp(ap[1], "=") == 0)
- expr = strcmp(ap[0], ap[2]) == 0;
- else if (strcmp(ap[1], "!=") == 0)
- expr = strcmp(ap[0], ap[2]) != 0;
- else if (strcmp(ap[1], ">") == 0)
- expr = strcmp(ap[0], ap[2]) > 0;
- else if (strcmp(ap[1], "<") == 0)
- expr = strcmp(ap[0], ap[2]) < 0;
- else if (strcmp(ap[1], "-eq") == 0)
- expr = a == b;
- else if (strcmp(ap[1], "-ne") == 0)
- expr = a != b;
- else if (strcmp(ap[1], "-lt") == 0)
- expr = a < b;
- else if (strcmp(ap[1], "-le") == 0)
- expr = a <= b;
- else if (strcmp(ap[1], "-gt") == 0)
- expr = a > b;
- else if (strcmp(ap[1], "-ge") == 0)
- expr = a >= b;
- else {
- expr = 1;
- break;
- }
-
- if (last_cmp == 0)
- expr = last_expr || expr;
- else if (last_cmp == 1)
- expr = last_expr && expr;
- last_cmp = -1;
- }
-
- ap += adv; left -= adv;
- }
-
- if (neg)
- expr = !expr;
-
- expr = !expr;
-
-
- return expr;
-}
-
-char *test_aliases[] = { "[", NULL};
-
-U_BOOT_CMD_START(test)
- .aliases = test_aliases,
- .maxargs = CONFIG_MAXARGS,
- .cmd = do_test,
- .usage = "minimal test like /bin/sh",
- U_BOOT_CMD_HELP(
- "[args..]\n"
- " - test functionality\n")
-U_BOOT_CMD_END
-
-int
do_exit (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
int r;