Browse Source

[shell] Fix compiling issue when DFS is not enable

bernard 10 years ago
parent
commit
a8b0fe3f36
3 changed files with 9 additions and 4 deletions
  1. 4 1
      components/finsh/msh.c
  2. 2 1
      components/finsh/msh_cmd.c
  3. 3 2
      components/finsh/shell.c

+ 4 - 1
components/finsh/msh.c

@@ -315,12 +315,15 @@ int msh_exec(char* cmd, rt_size_t length)
         return 0;
     }
 #endif
-#ifdef DFS_USING_WORKDIR
+
+#if defined(RT_USING_DFS) && defined(DFS_USING_WORKDIR)
+	/* change to this directory */
     if (chdir(cmd) == 0)
     {
         return 0;
     }
 #endif
+
     /* truncate the cmd at the first space. */
     {
         char *tcmd;

+ 2 - 1
components/finsh/msh_cmd.c

@@ -249,6 +249,7 @@ int cmd_ifconfig(int argc, char** argv)
 }
 FINSH_FUNCTION_EXPORT_ALIAS(cmd_ifconfig, __cmd_ifconfig, list the information of network interfaces);
 
+#ifdef RT_LWIP_TCP
 int cmd_netstat(int argc, char** argv)
 {
  	extern void list_tcps(void);
@@ -257,7 +258,7 @@ int cmd_netstat(int argc, char** argv)
 	return 0;
 }
 FINSH_FUNCTION_EXPORT_ALIAS(cmd_netstat, __cmd_netstat, list the information of TCP/IP);
-
+#endif
 #endif /* RT_USING_LWIP */
 
 int cmd_ps(int argc, char** argv)

+ 3 - 2
components/finsh/shell.c

@@ -70,10 +70,11 @@ const char* finsh_get_prompt()
 #endif
     strcpy(finsh_prompt, _PROMPT);
 
-#ifdef DFS_USING_WORKDIR
+#if defined(RT_USING_DFS) && defined(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;
@@ -307,7 +308,7 @@ void finsh_thread_entry(void* parameter)
         shell->device = rt_console_get_device();
         RT_ASSERT(shell->device);
         rt_device_set_rx_indicate(shell->device, finsh_rx_ind);
-        rt_device_open(shell->device, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX);
+        rt_device_open(shell->device, (RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_STREAM | RT_DEVICE_FLAG_INT_RX));
 #else
         RT_ASSERT(shell->device);
 #endif