version 1.35, 2017/05/01 12:20:55 |
version 1.36, 2020/04/12 08:36:18 |
|
|
.name = "list-buffers", |
.name = "list-buffers", |
.alias = "lsb", |
.alias = "lsb", |
|
|
.args = { "F:", 0, 0 }, |
.args = { "F:f:", 0, 0 }, |
.usage = "[-F format]", |
.usage = "[-F format] [-f filter]", |
|
|
.flags = CMD_AFTERHOOK, |
.flags = CMD_AFTERHOOK, |
.exec = cmd_list_buffers_exec |
.exec = cmd_list_buffers_exec |
|
|
struct args *args = self->args; |
struct args *args = self->args; |
struct paste_buffer *pb; |
struct paste_buffer *pb; |
struct format_tree *ft; |
struct format_tree *ft; |
char *line; |
const char *template, *filter; |
const char *template; |
char *line, *expanded; |
|
int flag; |
|
|
if ((template = args_get(args, 'F')) == NULL) |
if ((template = args_get(args, 'F')) == NULL) |
template = LIST_BUFFERS_TEMPLATE; |
template = LIST_BUFFERS_TEMPLATE; |
|
filter = args_get(args, 'f'); |
|
|
pb = NULL; |
pb = NULL; |
while ((pb = paste_walk(pb)) != NULL) { |
while ((pb = paste_walk(pb)) != NULL) { |
ft = format_create(item->client, item, FORMAT_NONE, 0); |
ft = format_create(item->client, item, FORMAT_NONE, 0); |
format_defaults_paste_buffer(ft, pb); |
format_defaults_paste_buffer(ft, pb); |
|
|
line = format_expand(ft, template); |
if (filter != NULL) { |
cmdq_print(item, "%s", line); |
expanded = format_expand(ft, filter); |
free(line); |
flag = format_true(expanded); |
|
free(expanded); |
|
} else |
|
flag = 1; |
|
if (flag) { |
|
line = format_expand(ft, template); |
|
cmdq_print(item, "%s", line); |
|
free(line); |
|
} |
|
|
format_free(ft); |
format_free(ft); |
} |
} |