diff --git a/components/dfs/filesystems/nfs/rpc/pmap.c b/components/dfs/filesystems/nfs/rpc/pmap.c index fcf8e9d948f0e2ae15de9253f1c2e8dbbc94f4f2..4f2cf50c1e402704383ee03a7eaa00f19ab92565 100644 --- a/components/dfs/filesystems/nfs/rpc/pmap.c +++ b/components/dfs/filesystems/nfs/rpc/pmap.c @@ -24,7 +24,7 @@ unsigned short pmap_getport(struct sockaddr_in *address, unsigned long program, { unsigned short port = 0; int socket = -1; - register CLIENT *client; + register CLIENT *client = RT_NULL; struct pmap parms; address->sin_port = htons((unsigned short)PMAPPORT); diff --git a/components/finsh/msh.c b/components/finsh/msh.c index 1492e017e14f1670abe47f2a07460952c602ce43..49a5d235914f7020dfc9b1fd7e5ad4aabd66ea0e 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 4313fcf6b2bf80664d1a61e713ca641eb39b852d..393d68713ccd72c99e7357602f6fcc846337dfa2 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 +#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 9065f2f5ef7926588dc7f0bcb8d3a41276868d04..448f9e6fbe9ed7b172865068cc0146796112c7a6 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 diff --git a/include/rtthread.h b/include/rtthread.h index abe3a614ed66c6858bde5a50126ddbcb00961f11..edd207bcb7751b35fe9fde0f24d539720d468705 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -421,7 +421,7 @@ rt_module_t rt_module_load(const char *name, void *module_ptr); rt_err_t rt_module_unload(rt_module_t module); #ifdef RT_USING_DFS rt_module_t rt_module_open(const char *filename); -rt_module_t rt_module_exec_cmd(const char *path, char* cmd_line, int size); +rt_module_t rt_module_exec_cmd(const char *path, const char* cmd_line, int size); #endif void *rt_module_malloc(rt_size_t size); void *rt_module_realloc(void *ptr, rt_size_t size); diff --git a/src/module.c b/src/module.c index 428d42e961f9c3934bd7abce8b633db128573e07..0603159b917caaf0f149fc1fc32b709195b74993 100644 --- a/src/module.c +++ b/src/module.c @@ -920,7 +920,7 @@ static void module_main_entry(void* parameter) * * @return the module object */ -rt_module_t rt_module_do_main(const char *name, void *module_ptr, char* cmd_line, int line_size) +rt_module_t rt_module_do_main(const char *name, void *module_ptr, const char* cmd_line, int line_size) { rt_module_t module; @@ -1125,7 +1125,7 @@ rt_module_t rt_module_open(const char *path) * * @return the module object */ -rt_module_t rt_module_exec_cmd(const char *path, char* cmd_line, int size) +rt_module_t rt_module_exec_cmd(const char *path, const char* cmd_line, int size) { struct stat s; int fd, length;