Shenzhou board is first to use ONLY Kconfig for configuration

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5114 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo
2012-09-08 13:56:21 +00:00
parent 5119467c0f
commit 58686d844f
42 changed files with 1295 additions and 308 deletions
+24 -6
View File
@@ -195,9 +195,9 @@ int cmd_df(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
defined(CONFIG_FS_READABLE) && !defined(CONFIG_NSH_DISABLE_MOUNT)
int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{
char *source;
char *target;
char *filesystem = 0;
FAR char *source;
FAR char *target;
FAR char *filesystem = NULL;
bool badarg = false;
int ret;
@@ -208,7 +208,11 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
return mount_show(vtbl, argv[0]);
}
/* Get the mount options */
/* Get the mount options. NOTE: getopt() is not thread safe nor re-entrant.
* To keep its state proper for the next usage, it is necessary to parse to
* the end of the line even if an error occurs. If an error occurs, this
* logic just sets 'badarg' and continues.
*/
int option;
while ((option = getopt(argc, argv, ":t:")) != ERROR)
@@ -232,14 +236,18 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
}
}
/* If a bad argument was encountered, then return without processing the command */
/* If a bad argument was encountered, then return without processing the
* command.
*/
if (badarg)
{
return ERROR;
}
/* There are two required arguments after the options */
/* There are two required arguments after the options: the source and target
* paths.
*/
if (optind + 2 < argc)
{
@@ -252,6 +260,16 @@ int cmd_mount(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
return ERROR;
}
/* While the above parsing for the -t argument looks nice, the -t argument
* not really optional.
*/
if (!filesystem)
{
nsh_output(vtbl, g_fmtargrequired, argv[0]);
return ERROR;
}
/* The source and target paths might be relative to the current
* working directory.
*/