diff options
| author | bernard <[email protected]> | 2014-04-08 15:49:16 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2014-04-08 15:49:16 +0800 |
| commit | b2f35dcf3f930087104e2bb36845d50a6931a15d (patch) | |
| tree | 40e1e3389ceebb6e18919ce0750a880cacb6e9cc /components/finsh | |
| parent | 412d548f9cfb3bb89efe2828013eeb3e264fc0c1 (diff) | |
Merge remote-tracking branch 'origin/master' into stable-v1.2.xv1.2.1
Diffstat (limited to 'components/finsh')
| -rw-r--r-- | components/finsh/msh.c | 11 | ||||
| -rw-r--r-- | components/finsh/shell.c | 6 | ||||
| -rw-r--r-- | components/finsh/shell.h | 2 |
3 files changed, 14 insertions, 5 deletions
diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 1492e017e1..49a5d23591 100644 --- a/components/finsh/msh.c +++ b/components/finsh/msh.c @@ -180,7 +180,7 @@ static cmd_function_t msh_get_cmd(char *cmd, int size) #if defined(RT_USING_MODULE) && defined(RT_USING_DFS) /* Return 0 on module executed. Other value indicate error. */ -int msh_exec_module(char* cmd_line, int size) +int msh_exec_module(const char* cmd_line, int size) { int ret; int fd = -1; @@ -248,6 +248,11 @@ int msh_exec_module(char* cmd_line, int size) rt_free(pg_name); return ret; } + +int system(const char *command) +{ + return msh_exec_module(command, rt_strlen(command)); +} #endif static int _msh_exec_cmd(char* cmd, rt_size_t length, int *retp) @@ -346,8 +351,8 @@ static int str_common(const char *str1, const char *str2) #ifdef RT_USING_DFS void msh_auto_complete_path(char *path) { - DIR* dir; - struct dirent *dirent; + DIR* dir = RT_NULL; + struct dirent *dirent = RT_NULL; char *full_path, *ptr, *index; full_path = (char*)rt_malloc(256); diff --git a/components/finsh/shell.c b/components/finsh/shell.c index 4313fcf6b2..393d68713c 100644 --- a/components/finsh/shell.c +++ b/components/finsh/shell.c @@ -54,8 +54,10 @@ ALIGN(RT_ALIGN_SIZE) static char finsh_thread_stack[FINSH_THREAD_STACK_SIZE]; struct finsh_shell* shell; -#if defined(RT_USING_DFS) && defined(DFS_USING_WORKDIR) +#if defined(FINSH_USING_MSH) || (defined(RT_USING_DFS) && defined(DFS_USING_WORKDIR)) +#if defined(RT_USING_DFS) #include <dfs_posix.h> +#endif const char* finsh_get_prompt() { #define _MSH_PROMPT "msh " @@ -68,8 +70,10 @@ const char* finsh_get_prompt() #endif strcpy(finsh_prompt, _PROMPT); +#ifdef DFS_USING_WORKDIR /* get current working directory */ getcwd(&finsh_prompt[rt_strlen(finsh_prompt)], RT_CONSOLEBUF_SIZE - rt_strlen(finsh_prompt)); +#endif strcat(finsh_prompt, ">"); return finsh_prompt; diff --git a/components/finsh/shell.h b/components/finsh/shell.h index 9065f2f5ef..448f9e6fbe 100644 --- a/components/finsh/shell.h +++ b/components/finsh/shell.h @@ -43,7 +43,7 @@ #define FINSH_CMD_SIZE 80 #define FINSH_OPTION_ECHO 0x01 -#if defined(RT_USING_DFS) && defined(DFS_USING_WORKDIR) +#if defined(FINSH_USING_MSH) || (defined(RT_USING_DFS) && defined(DFS_USING_WORKDIR)) #define FINSH_PROMPT finsh_get_prompt() const char* finsh_get_prompt(void); #else |
