diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2019-08-16 19:08:54 +0100 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2019-08-16 19:08:54 +0100 |
commit | c6ce270ee1e54fc7ae9c4029923bccedbcac5ad2 (patch) | |
tree | 4a5158d82b0a566edab9d94ad49a2b3885fa1a0a /src/imv.c | |
parent | 505340f9fdd7e8d8356c25035b254c8f9ee367a6 (diff) | |
download | imv-c6ce270ee1e54fc7ae9c4029923bccedbcac5ad2.tar.gz |
imv: Add index/all argument to close command
Diffstat (limited to 'src/imv.c')
-rw-r--r-- | src/imv.c | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -1536,9 +1536,20 @@ static void command_close(struct list *args, const char *argstr, void *data) (void)args; (void)argstr; struct imv *imv = data; - char* path = strdup(imv_navigator_selection(imv->navigator)); - imv_navigator_remove(imv->navigator, path); - free(path); + size_t index = imv_navigator_index(imv->navigator); + + if (args->len == 2) { + const char *arg = args->items[1]; + if (!strcmp("all", arg)) { + imv_navigator_remove_all(imv->navigator); + imv->slideshow.elapsed = 0; + return; + } + + index = (size_t)strtol(arg, NULL, 10) - 1; + } + + imv_navigator_remove_at(imv->navigator, index); imv->slideshow.elapsed = 0; } |