예제 #1
0
파일: buttons.c 프로젝트: Bpara001/CS_UCR
static void
init_stack (char *args)
{
  int argc = 0;
  char *argv[MAX_ARGS];
  char *a;
  char *args_str = str_copy (args); /* Destructively modify string */

  while (*args_str != '\0')
    {
      /* Skip leading blanks */
      while (*args_str == ' ' || *args_str == '\t') args_str++;
      a = args_str;             /* First non-blank char */

      /* Find last non-blank, non-null char */
      while (*args_str != ' ' && *args_str != '\t' && *args_str != '\0') args_str++;

      /* Null terminate word */
      if (a != args_str)
	{
	  if (*args_str != '\0')
	    *args_str++ = '\0';
	  argv [argc++] = a;    /* Set next argument to word */

          if (MAX_ARGS == argc)
            {
              break;            /* If too many, ignore rest of list */
            }
	}
    }

  initialize_run_stack (argc, argv);
}
예제 #2
0
void
initialize_stack(const char *command_line)
{
  //FIXME: eventually run for both or neither
  int context = 0;
  reg_image_t &reg_image = reg_images[context];

    int argc = 0;
    char *argv[MAX_ARGS];
    char *a;
    char *args = str_copy((char*)command_line); /* Destructively modify string */
    char *orig_args = args;

    while (*args != '\0')
    {
        /* Skip leading blanks */
        while (*args == ' ' || *args == '\t') args++;

        /* First non-blank char */
        a = args;

        /* Last non-blank, non-null char */
        while (*args != ' ' && *args != '\t' && *args != '\0') args++;

        /* Terminate word */
        if (a != args)
        {
            if (*args != '\0')
                *args++ = '\0';	/* Null terminate */

            argv[argc++] = a;

            if (MAX_ARGS == argc)
            {
                break;            /* If too many, ignore rest of list */
            }
        }
    }

    initialize_run_stack (argc, argv);
    free (orig_args);
}