Blackfin: define CONFIG_SYS_CACHELINE_SIZE
[oweals/u-boot.git] / common / command.c
index 0020eacf5c46fe8d8da0617e4c449df03ad9e757..ed931d748c095a1cd89ff0f702e10dccb72b1611 100644 (file)
@@ -108,6 +108,8 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len)
        int len;
        int n_found = 0;
 
+       if (!cmd)
+               return NULL;
        /*
         * Some commands allow length modifiers (like "cp.b");
         * compare command name only until first dot.
@@ -138,7 +140,7 @@ cmd_tbl_t *find_cmd (const char *cmd)
        return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
 }
 
-int cmd_usage(cmd_tbl_t *cmdtp)
+int cmd_usage(const cmd_tbl_t *cmdtp)
 {
        printf("%s - %s\n\n", cmdtp->name, cmdtp->usage);
 
@@ -160,7 +162,6 @@ int cmd_usage(cmd_tbl_t *cmdtp)
 
 int var_complete(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
 {
-#if 0 /* need to reimplement */
        static char tmp_buf[512];
        int space;
 
@@ -171,32 +172,8 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
 
        if (!space && argc == 2)
                return env_complete(argv[1], maxv, cmdv, sizeof(tmp_buf), tmp_buf);
-#endif
-       return 0;
-}
 
-static void install_auto_complete_handler(const char *cmd,
-               int (*complete)(int argc, char * const argv[], char last_char, int maxv, char *cmdv[]))
-{
-       cmd_tbl_t *cmdtp;
-
-       cmdtp = find_cmd(cmd);
-       if (cmdtp == NULL)
-               return;
-
-       cmdtp->complete = complete;
-}
-
-void install_auto_complete(void)
-{
-#if defined(CONFIG_CMD_EDITENV)
-       install_auto_complete_handler("editenv", var_complete);
-#endif
-       install_auto_complete_handler("printenv", var_complete);
-       install_auto_complete_handler("setenv", var_complete);
-#if defined(CONFIG_CMD_RUN)
-       install_auto_complete_handler("run", var_complete);
-#endif
+       return 0;
 }
 
 /*************************************************************************************/
@@ -497,6 +474,12 @@ void fixup_cmdtable(cmd_tbl_t *cmdtp, int size)
                        addr = (ulong)(cmdtp->help) + gd->reloc_off;
                        cmdtp->help = (char *)addr;
                }
+#endif
+#ifdef CONFIG_AUTO_COMPLETE
+               if (cmdtp->complete) {
+                       addr = (ulong)(cmdtp->complete) + gd->reloc_off;
+                       cmdtp->complete = (char *)addr;
+               }
 #endif
                cmdtp++;
        }