X-Git-Url: https://git.sur5r.net/?p=i3%2Fi3;a=blobdiff_plain;f=src%2Fcommands.c;h=0a64b2b82b7f0310d8327dd4cc83d5f4f5383828;hp=13e0fa7e88df6104d17a311205249b44e49bf794;hb=1b69ddacbe01741e01a6955cbe464a7b56fae45b;hpb=acb79bd02fb1d650091c7a41761a9d503e540b38 diff --git a/src/commands.c b/src/commands.c index 13e0fa7e..0a64b2b8 100644 --- a/src/commands.c +++ b/src/commands.c @@ -902,11 +902,15 @@ void cmd_nop(I3_CMD, char *comment) { void cmd_append_layout(I3_CMD, char *path) { LOG("Appending layout \"%s\"\n", path); + /* Make sure we allow paths like '~/.i3/layout.json' */ + path = resolve_tilde(path); + json_content_t content = json_determine_content(path); LOG("JSON content = %d\n", content); if (content == JSON_CONTENT_UNKNOWN) { ELOG("Could not determine the contents of \"%s\", not loading.\n", path); ysuccess(false); + free(path); return; } @@ -948,6 +952,7 @@ void cmd_append_layout(I3_CMD, char *path) { if (content == JSON_CONTENT_WORKSPACE) ipc_send_workspace_event("restored", parent, NULL); + free(path); cmd_output->needs_tree_render = true; }