Includes $ for variables without it

This commit is contained in:
Denis Doria 2016-06-03 11:26:47 +02:00
parent f55b5a4982
commit bf2298e0a5

View File

@ -2146,6 +2146,8 @@ static int compare_set_qsort(const void *_l, const void *_r) {
} }
static struct cmd_results *cmd_set(int argc, char **argv) { static struct cmd_results *cmd_set(int argc, char **argv) {
char *tmp;
int size;
struct cmd_results *error = NULL; struct cmd_results *error = NULL;
if (!config->reading) return cmd_results_new(CMD_FAILURE, "set", "Can only be used in config file."); if (!config->reading) return cmd_results_new(CMD_FAILURE, "set", "Can only be used in config file.");
if ((error = checkarg(argc, "set", EXPECTED_AT_LEAST, 2))) { if ((error = checkarg(argc, "set", EXPECTED_AT_LEAST, 2))) {
@ -2153,7 +2155,15 @@ static struct cmd_results *cmd_set(int argc, char **argv) {
} }
if (argv[0][0] != '$') { if (argv[0][0] != '$') {
return cmd_results_new(CMD_FAILURE, "set", "Malformed variable assignment, name has to start with $"); sway_log(L_INFO, "Warning: variable '%s' doesn't start with $", argv[0]);
size = asprintf(&tmp, "%s%s", "$", argv[0]);
if (size == -1) {
return cmd_results_new(CMD_FAILURE, "set", "Not possible to create variable $'%s'", argv[0]);
}
argv[0] = strdup(tmp);
free(tmp);
} }
struct sway_variable *var = NULL; struct sway_variable *var = NULL;