xref: /kvm-unit-tests/lib/argv.c (revision a322d4c597bb7a4de7985e7b51b80504f7e4fdda)
1  #include "libcflat.h"
2  
3  int __argc;
4  char *__argv[100];
5  char *__args;
6  char __args_copy[1000];
7  
8  static bool isblank(char p)
9  {
10      return p == ' ' || p == '\t';
11  }
12  
13  static char *skip_blanks(char *p)
14  {
15      while (isblank(*p))
16          ++p;
17      return p;
18  }
19  
20  void __setup_args(void)
21  {
22      char *args = __args;
23      char **argv = __argv;
24      char *p = __args_copy;
25  
26      while (*(args = skip_blanks(args)) != '\0') {
27          *argv++ = p;
28          while (*args != '\0' && !isblank(*args))
29              *p++ = *args++;
30          *p++ = '\0';
31      }
32      __argc = argv - __argv;
33  }
34