diff --git a/src/config/parse_config.h b/src/config/parse_config.h index aa2c1e7..84ec0ce 100644 --- a/src/config/parse_config.h +++ b/src/config/parse_config.h @@ -400,7 +400,7 @@ void convert_hex_to_rgba(float *color, unsigned long int hex) { color[3] = (hex & 0xFF) / 255.0f; } -FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value) { +FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value, char *arg_value2) { FuncType func = NULL; (*arg).v = NULL; @@ -993,9 +993,9 @@ void parse_config_line(Config *config, const char *line) { KeyBinding *binding = &config->key_bindings[config->key_bindings_count]; memset(binding, 0, sizeof(KeyBinding)); - char mod_str[256], keysym_str[256], func_name[256], arg_value[256] = "none"; - if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, keysym_str, - func_name, arg_value) < 3) { + char mod_str[256], keysym_str[256], func_name[256], arg_value[256] = "none",arg_value2[256] = "none"; + if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, keysym_str, + func_name, arg_value, arg_value2) < 3) { fprintf(stderr, "Error: Invalid bind format: %s\n", value); return; } @@ -1003,7 +1003,7 @@ void parse_config_line(Config *config, const char *line) { binding->mod = parse_mod(mod_str); binding->keysym = parse_keysym(keysym_str); binding->arg.v = NULL; - binding->func = parse_func_name(func_name, &binding->arg, arg_value); + binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2); if (!binding->func) { fprintf(stderr, "Error: Unknown function in bind: %s\n", func_name); } else { @@ -1023,9 +1023,9 @@ void parse_config_line(Config *config, const char *line) { &config->mouse_bindings[config->mouse_bindings_count]; memset(binding, 0, sizeof(MouseBinding)); - char mod_str[256], button_str[256], func_name[256], arg_value[256] = "none"; - if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, button_str, - func_name, arg_value) < 3) { + char mod_str[256], button_str[256], func_name[256], arg_value[256] = "none", arg_value2[256] = "none"; + if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, button_str, + func_name, arg_value, arg_value2) < 3) { fprintf(stderr, "Error: Invalid mousebind format: %s\n", value); return; } @@ -1033,7 +1033,7 @@ void parse_config_line(Config *config, const char *line) { binding->mod = parse_mod(mod_str); binding->button = parse_button(button_str); binding->arg.v = NULL; - binding->func = parse_func_name(func_name, &binding->arg, arg_value); + binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2); if (!binding->func) { fprintf(stderr, "Error: Unknown function in mousebind: %s\n", func_name); } else { @@ -1051,9 +1051,9 @@ void parse_config_line(Config *config, const char *line) { AxisBinding *binding = &config->axis_bindings[config->axis_bindings_count]; memset(binding, 0, sizeof(AxisBinding)); - char mod_str[256], dir_str[256], func_name[256], arg_value[256] = "none"; - if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, dir_str, func_name, - arg_value) < 3) { + char mod_str[256], dir_str[256], func_name[256], arg_value[256] = "none", arg_value2[256] = "none"; + if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, dir_str, func_name, + arg_value, arg_value2) < 3) { fprintf(stderr, "Error: Invalid axisbind format: %s\n", value); return; } @@ -1061,7 +1061,7 @@ void parse_config_line(Config *config, const char *line) { binding->mod = parse_mod(mod_str); binding->dir = parse_direction(dir_str); binding->arg.v = NULL; - binding->func = parse_func_name(func_name, &binding->arg, arg_value); + binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2); if (!binding->func) { fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name); @@ -1084,9 +1084,9 @@ void parse_config_line(Config *config, const char *line) { memset(binding, 0, sizeof(GestureBinding)); char mod_str[256], motion_str[256], fingers_count_str[256], func_name[256], - arg_value[256] = "none"; - if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, motion_str, - fingers_count_str, func_name, arg_value) < 4) { + arg_value[256] = "none", arg_value2[256] = "none"; + if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, motion_str, + fingers_count_str, func_name, arg_value, arg_value2) < 4) { fprintf(stderr, "Error: Invalid gesturebind format: %s\n", value); return; } @@ -1095,7 +1095,7 @@ void parse_config_line(Config *config, const char *line) { binding->motion = parse_direction(motion_str); binding->fingers_count = atoi(fingers_count_str); binding->arg.v = NULL; - binding->func = parse_func_name(func_name, &binding->arg, arg_value); + binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2); if (!binding->func) { fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name); diff --git a/src/maomao.c b/src/maomao.c index d9f4397..f532517 100644 --- a/src/maomao.c +++ b/src/maomao.c @@ -149,9 +149,12 @@ struct uvec2 { typedef struct { int i; + int i2; float f; + float f2; char *v; unsigned int ui; + unsigned int ui2; } Arg; typedef struct {