source: rtems/tools/schedsim/shell/shared/shell_makeargs.c @ abff6d2

4.115
Last change on this file since abff6d2 was abff6d2, checked in by Joel Sherrill <joel.sherrill@…>, on 12/17/10 at 14:49:40

2010-12-17 Joel Sherrill <joel.sherrill@…>

Jennifer Averett <jennifer.averett@…>

Add RTEMS Scheduler Simulator. This is the shell scripting portion.

  • .cvsignore, ChangeLog?, Makefile.am, schedsim_priority/.cvsignore, schedsim_priority/Makefile.am, schedsim_priority/config.c, schedsim_priority/printheir_executing.c, schedsim_priority/schedsim.cc, schedsim_priority/wrap_thread_dispatch.c, scripts/script01, scripts/script02, scripts/script03, scripts/script04, scripts/script05, scripts/script06, shared/.cvsignore, shared/Makefile.am, shared/commands.c, shared/getopt.c, shared/lookup_semaphore.c, shared/lookup_task.c, shared/main_clocktick.c, shared/main_echo.c, shared/main_executing.c, shared/main_heir.c, shared/main_help.c, shared/main_rtemsinit.c, shared/main_semcreate.c, shared/main_semdelete.c, shared/main_semflush.c, shared/main_semobtain.c, shared/main_semrelease.c, shared/main_taskcreate.c, shared/main_taskdelete.c, shared/main_taskmode.c, shared/main_taskpriority.c, shared/main_taskresume.c, shared/main_tasksuspend.c, shared/main_taskwakeafter.c, shared/schedsim_shell.h, shared/shell_cmdset.c, shared/shell_makeargs.c, shared/include/shell.h, shared/include/newlib/_ansi.h, shared/include/newlib/getopt.h: New files.
  • Property mode set to 100644
File size: 1.1 KB
Line 
1/*
2 *  Split string into argc/argv style argument list
3 *
4 *  COPYRIGHT (c) 1989-2010.
5 *  On-Line Applications Research Corporation (OAR).
6 *
7 *  The license and distribution terms for this file may be
8 *  found in the file LICENSE in this distribution or at
9 *  http://www.rtems.com/license/LICENSE.
10 *
11 *  $Id$
12 */
13
14#if HAVE_CONFIG_H
15#include "config.h"
16#endif
17
18#include <string.h>
19#include <ctype.h>
20
21int rtems_shell_make_args(
22  char  *commandLine,
23  int   *argc_p,
24  char **argv_p,
25  int    max_args
26)
27{
28  int   argc;
29  char *ch;
30  int   status = 0;
31 
32  argc = 0;
33  ch = commandLine;
34
35  while ( *ch ) {
36
37    while ( isspace((unsigned char)*ch) ) ch++;
38
39    if ( *ch == '\0' )
40      break;
41
42    if ( *ch == '"' ) {
43      argv_p[ argc ] = ++ch;
44      while ( ( *ch != '\0' ) && ( *ch != '"' ) ) ch++;
45    } else {
46      argv_p[ argc ] = ch;
47      while ( ( *ch != '\0' ) && ( !isspace((unsigned char)*ch) ) ) ch++;
48    }
49
50    argc++;
51
52    if ( *ch == '\0' )
53      break;
54
55    *ch++ = '\0';
56
57    if ( argc == (max_args-1) ) {
58        status = -1;
59        break;
60    }
61
62
63  }
64  argv_p[ argc ] = NULL;
65  *argc_p = argc;
66  return status;
67}
68
Note: See TracBrowser for help on using the repository browser.