From 5767dcc86e23ba86e07dde6807b1af3deb3fdcbf Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 5 Aug 2015 22:40:38 -0400 Subject: Mostly implement bindsym command --- sway/config.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'sway/config.c') diff --git a/sway/config.c b/sway/config.c index 7242be8d..e98246ff 100644 --- a/sway/config.c +++ b/sway/config.c @@ -50,3 +50,31 @@ _continue: return config; } + +char *do_var_replacement(struct sway_config *config, char *str) { + // TODO: Handle escaping $ and using $ in string literals + int i; + for (i = 0; str[i]; ++i) { + if (str[i] == '$') { + // Try for match (note: this could be faster) + int j; + for (j = 0; j < config->symbols->length; ++j) { + struct sway_variable *var = config->symbols->items[j]; + if (strstr(str + i, var->name) == str + i) { + // Match, do replacement + char *new_string = malloc( + strlen(str) - + strlen(var->name) + + strlen(var->value) + 1); + strncpy(new_string, str, i); + new_string[i] = 0; + strcat(new_string, var->value); + strcat(new_string, str + i + strlen(var->name)); + free(str); + str = new_string; + } + } + } + } + return str; +} -- cgit v1.2.3