1ea7d43d0SAvi Kivity #include "libcflat.h" 2ea7d43d0SAvi Kivity 3ea7d43d0SAvi Kivity int __argc; 4ea7d43d0SAvi Kivity char *__argv[100]; 5ea7d43d0SAvi Kivity char *__args; 6ea7d43d0SAvi Kivity char __args_copy[1000]; 7ea7d43d0SAvi Kivity 8ea7d43d0SAvi Kivity static bool isblank(char p) 9ea7d43d0SAvi Kivity { 10ea7d43d0SAvi Kivity return p == ' ' || p == '\t'; 11ea7d43d0SAvi Kivity } 12ea7d43d0SAvi Kivity 13ea7d43d0SAvi Kivity static char *skip_blanks(char *p) 14ea7d43d0SAvi Kivity { 15ea7d43d0SAvi Kivity while (isblank(*p)) 16ea7d43d0SAvi Kivity ++p; 17ea7d43d0SAvi Kivity return p; 18ea7d43d0SAvi Kivity } 19ea7d43d0SAvi Kivity 20ea7d43d0SAvi Kivity void __setup_args(void) 21ea7d43d0SAvi Kivity { 22ea7d43d0SAvi Kivity char *args = __args; 23ea7d43d0SAvi Kivity char **argv = __argv; 24ea7d43d0SAvi Kivity char *p = __args_copy; 25ea7d43d0SAvi Kivity 26ea7d43d0SAvi Kivity while (*(args = skip_blanks(args)) != '\0') { 27ea7d43d0SAvi Kivity *argv++ = p; 28ea7d43d0SAvi Kivity while (*args != '\0' && !isblank(*args)) 29ea7d43d0SAvi Kivity *p++ = *args++; 30ea7d43d0SAvi Kivity *p++ = '\0'; 31ea7d43d0SAvi Kivity } 32ea7d43d0SAvi Kivity __argc = argv - __argv; 33ea7d43d0SAvi Kivity } 34*5e61cba0SAndrew Jones 35*5e61cba0SAndrew Jones void setup_args(char *args) 36*5e61cba0SAndrew Jones { 37*5e61cba0SAndrew Jones if (!args) 38*5e61cba0SAndrew Jones return; 39*5e61cba0SAndrew Jones 40*5e61cba0SAndrew Jones __args = args; 41*5e61cba0SAndrew Jones __setup_args(); 42*5e61cba0SAndrew Jones } 43