diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:02:18 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:02:18 +0200 |
commit | 89f0c5c94f919445e1398016be0fc97f7bada3b1 (patch) | |
tree | a30ab33a276eb73670de464b2a2103b5aacb5b2b /common/command.c | |
parent | e24bb529b18eccbe5d1082d6eed0eb7353b756e3 (diff) | |
download | barebox-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.c | 133 |
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; |