mirror of
				https://github.com/onyx-and-iris/vmrcli.git
				synced 2025-10-31 13:11:49 +00:00 
			
		
		
		
	add :, delimiters to parse_input()
				
					
				
			remove replace_blanks_with_single_space()
This commit is contained in:
		
							parent
							
								
									48bb15e8f2
								
							
						
					
					
						commit
						c95ff0e163
					
				| @ -9,7 +9,6 @@ | ||||
| #define __UTIL_H__ | ||||
| 
 | ||||
| void remove_last_part_of_path(char *fullpath); | ||||
| int replace_blanks_with_single_space(char *s, size_t len); | ||||
| char *kind_as_string(char *s, int kind, int n); | ||||
| char *version_as_string(char *s, long v, int n); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										41
									
								
								src/util.c
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								src/util.c
									
									
									
									
									
								
							| @ -31,47 +31,6 @@ void remove_last_part_of_path(char *fullpath) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Replaces multiple spaces and tabs with single spaces | ||||
|  * | ||||
|  * @param s The string to be reduced | ||||
|  * @param len Current length of the string | ||||
|  * @return int New length of the string | ||||
|  */ | ||||
| int replace_blanks_with_single_space(char *s, size_t len) | ||||
| { | ||||
|     int j = 0; | ||||
|     int count = 0; | ||||
| 
 | ||||
|     if (len == 1 && isblank(s[0])) | ||||
|     { | ||||
|         s[0] = '\0'; | ||||
|         return len; | ||||
|     } | ||||
| 
 | ||||
|     if (len < 2) | ||||
|         return len; | ||||
| 
 | ||||
|     for (int i = 0; s[i] != '\0'; i++) | ||||
|     { | ||||
|         if (isblank(s[i])) | ||||
|         { | ||||
|             count++; | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             if (count >= 1) | ||||
|             { | ||||
|                 count = 0; | ||||
|                 s[j++] = ' '; | ||||
|             } | ||||
|             s[j++] = s[i]; | ||||
|         } | ||||
|     } | ||||
|     s[j] = '\0'; | ||||
|     return j; | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * @brief Converts Voicemeeter's kind into a string. | ||||
|  * | ||||
|  | ||||
							
								
								
									
										19
									
								
								src/vmrcli.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								src/vmrcli.c
									
									
									
									
									
								
							| @ -50,7 +50,7 @@ static bool vflag = false; | ||||
| void help(void); | ||||
| enum kind set_kind(char *kval); | ||||
| void interactive(PT_VMR vmr); | ||||
| void parse_input(PT_VMR vmr, char *input, int len); | ||||
| void parse_input(PT_VMR vmr, char *input); | ||||
| void parse_command(PT_VMR vmr, char *command); | ||||
| void get(PT_VMR vmr, char *command, struct result *res); | ||||
| 
 | ||||
| @ -160,7 +160,7 @@ int main(int argc, char *argv[]) | ||||
|     { | ||||
|         for (int i = optind; i < argc; i++) | ||||
|         { | ||||
|             parse_input(vmr, argv[i], strlen(argv[i])); | ||||
|             parse_input(vmr, argv[i]); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @ -240,16 +240,15 @@ enum kind set_kind(char *kval) | ||||
| void interactive(PT_VMR vmr) | ||||
| { | ||||
|     char input[MAX_LINE]; | ||||
|     size_t len; | ||||
| 
 | ||||
|     printf(">> "); | ||||
|     while (fgets(input, MAX_LINE, stdin) != NULL) | ||||
|     { | ||||
|         input[strcspn(input, "\n")] = 0; | ||||
|         if ((len = strlen(input)) == 1 && toupper(input[0]) == 'Q') | ||||
|         if (strlen(input) == 1 && toupper(input[0]) == 'Q') | ||||
|             break; | ||||
| 
 | ||||
|         parse_input(vmr, input, len); | ||||
|         parse_input(vmr, input); | ||||
| 
 | ||||
|         memset(input, 0, MAX_LINE); /* reset input buffer */ | ||||
|         printf(">> "); | ||||
| @ -262,18 +261,16 @@ void interactive(PT_VMR vmr) | ||||
|  * | ||||
|  * @param vmr Pointer to the iVMR interface | ||||
|  * @param input Each input line, from stdin or CLI args | ||||
|  * @param len The length of the input line | ||||
|  */ | ||||
| void parse_input(PT_VMR vmr, char *input, int len) | ||||
| void parse_input(PT_VMR vmr, char *input) | ||||
| { | ||||
|     char *token; | ||||
|     char *token, *p; | ||||
| 
 | ||||
|     replace_blanks_with_single_space(input, len); | ||||
|     token = strtok(input, " "); | ||||
|     token = strtok_r(input, " \t;,", &p); | ||||
|     while (token != NULL) | ||||
|     { | ||||
|         parse_command(vmr, token); | ||||
|         token = strtok(NULL, " "); | ||||
|         token = strtok_r(NULL, " \t;,", &p); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user