Simplify handle_sleep_command:

- Use new parse_ulong to ensure duration parses as a valid number.
- Rework logic to improve readability and seliminate uperfluous braces.
- Change whitespace to improve style.


git-svn-id: svn://svn.berlios.de/openocd/trunk@2207 b42882b7-edfa-0310-969c-e2dbd0fdcd60
This commit is contained in:
zwelch 2009-06-12 01:39:51 +00:00
parent 5c123481a1
commit 5af1bdcff4
1 changed files with 18 additions and 20 deletions

View File

@ -757,38 +757,36 @@ int command_context_mode(command_context_t *cmd_ctx, enum command_mode mode)
/* sleep command sleeps for <n> miliseconds
* this is useful in target startup scripts
*/
int handle_sleep_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
int handle_sleep_command(struct command_context_s *cmd_ctx,
char *cmd, char **args, int argc)
{
unsigned long duration = 0;
int busy = 0;
if (argc==1)
{
} else if (argc==2)
{
if (strcmp(args[1], "busy")!=0)
return ERROR_COMMAND_SYNTAX_ERROR;
busy = 1;
} else
bool busy = false;
if (argc == 2)
{
if (strcmp(args[1], "busy") == 0)
busy = true;
else
return ERROR_COMMAND_SYNTAX_ERROR;
}
else if (argc < 1 || argc > 2)
return ERROR_COMMAND_SYNTAX_ERROR;
duration = strtoul(args[0], NULL, 0);
unsigned long duration = 0;
int retval = parse_ulong(args[0], &duration);
if (ERROR_OK != retval)
return retval;
if (busy)
{
busy_sleep(duration);
} else
if (!busy)
{
long long then = timeval_ms();
while ((timeval_ms()-then)<(long long)duration)
while (timeval_ms() - then < (long long)duration)
{
target_call_timer_callbacks_now();
usleep(1000);
}
}
else
busy_sleep(duration);
return ERROR_OK;
}