]> git.sur5r.net Git - u-boot/blobdiff - common/main.c
sandbox: config: enable fdt and snprintf() options
[u-boot] / common / main.c
index 6a3eac28aa7e280fbd8b6f508e5cd938c3e15375..db181d319b85f44fb88de1204601c885adb3cfdb 100644 (file)
@@ -1261,7 +1261,6 @@ static void process_macros (const char *input, char *output)
  */
 static int builtin_run_command(const char *cmd, int flag)
 {
-       cmd_tbl_t *cmdtp;
        char cmdbuf[CONFIG_SYS_CBSIZE]; /* working copy of cmd          */
        char *token;                    /* start of token in cmdbuf     */
        char *sep;                      /* end of token (separator) in cmdbuf */
@@ -1339,41 +1338,7 @@ static int builtin_run_command(const char *cmd, int flag)
                        continue;
                }
 
-               /* Look up command in command table */
-               if ((cmdtp = find_cmd(argv[0])) == NULL) {
-                       printf ("Unknown command '%s' - try 'help'\n", argv[0]);
-                       rc = -1;        /* give up after bad command */
-                       continue;
-               }
-
-               /* found - check max args */
-               if (argc > cmdtp->maxargs) {
-                       cmd_usage(cmdtp);
-                       rc = -1;
-                       continue;
-               }
-
-#if defined(CONFIG_CMD_BOOTD)
-               /* avoid "bootd" recursion */
-               if (cmdtp->cmd == do_bootd) {
-#ifdef DEBUG_PARSER
-                       printf ("[%s]\n", finaltoken);
-#endif
-                       if (flag & CMD_FLAG_BOOTD) {
-                               puts ("'bootd' recursion detected\n");
-                               rc = -1;
-                               continue;
-                       } else {
-                               flag |= CMD_FLAG_BOOTD;
-                       }
-               }
-#endif
-
-               /* OK - call function to do the command */
-               if (cmd_call(cmdtp, flag, argc, argv) != 0)
-                       rc = -1;
-
-               repeatable &= cmdtp->repeatable;
+               rc = cmd_process(flag, argc, argv, &repeatable);
 
                /* Did the user stop this? */
                if (had_ctrlc ())
@@ -1416,7 +1381,7 @@ int do_run (cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
        int i;
 
        if (argc < 2)
-               return cmd_usage(cmdtp);
+               return CMD_RET_USAGE;
 
        for (i=1; i<argc; ++i) {
                char *arg;