From 3ec28ceb9bc4f4f3c186d8006b3ab0c776714fa5 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 9 Jun 2017 15:17:20 +0000 Subject: Default sort for buffer mode should be time not name. --- window-buffer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'window-buffer.c') diff --git a/window-buffer.c b/window-buffer.c index 6cbc54df..7ba21608 100644 --- a/window-buffer.c +++ b/window-buffer.c @@ -46,13 +46,13 @@ const struct window_mode window_buffer_mode = { }; enum window_buffer_sort_type { - WINDOW_BUFFER_BY_NAME, WINDOW_BUFFER_BY_TIME, + WINDOW_BUFFER_BY_NAME, WINDOW_BUFFER_BY_SIZE, }; static const char *window_buffer_sort_list[] = { - "name", "time", + "name", "size" }; -- cgit From bab4da51334499d1e3e43ad155f2f8da6ad0eb76 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 9 Jun 2017 15:29:15 +0000 Subject: Add -O option to choose-* to set initial sort order. --- window-buffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'window-buffer.c') diff --git a/window-buffer.c b/window-buffer.c index 7ba21608..d7e310d8 100644 --- a/window-buffer.c +++ b/window-buffer.c @@ -257,7 +257,7 @@ window_buffer_init(struct window_pane *wp, __unused struct cmd_find_state *fs, else data->command = xstrdup(args->argv[0]); - data->data = mode_tree_start(wp, window_buffer_build, + data->data = mode_tree_start(wp, args, window_buffer_build, window_buffer_draw, window_buffer_search, data, window_buffer_sort_list, nitems(window_buffer_sort_list), &s); -- cgit From adcd5aff6fb86036ef736c10b04005da77a465f6 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 9 Jun 2017 16:01:39 +0000 Subject: Extend filters (f key) to buffer and client mode and add -f flag to specify to command. --- window-buffer.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'window-buffer.c') diff --git a/window-buffer.c b/window-buffer.c index d7e310d8..cfc72c8d 100644 --- a/window-buffer.c +++ b/window-buffer.c @@ -125,14 +125,15 @@ window_buffer_cmp_size(const void *a0, const void *b0) } static void -window_buffer_build(void *modedata, u_int sort_type, __unused uint64_t *tag) +window_buffer_build(void *modedata, u_int sort_type, __unused uint64_t *tag, + const char *filter) { struct window_buffer_modedata *data = modedata; struct window_buffer_itemdata *item; u_int i; struct paste_buffer *pb; - char *tim; - char *text; + char *tim, *text, *cp; + struct format_tree *ft; for (i = 0; i < data->item_size; i++) window_buffer_free_item(data->item_list[i]); @@ -167,6 +168,22 @@ window_buffer_build(void *modedata, u_int sort_type, __unused uint64_t *tag) for (i = 0; i < data->item_size; i++) { item = data->item_list[i]; + if (filter != NULL) { + pb = paste_get_name(item->name); + if (pb == NULL) + continue; + ft = format_create(NULL, NULL, FORMAT_NONE, 0); + format_defaults_paste_buffer(ft, pb); + cp = format_expand(ft, filter); + if (!format_true(cp)) { + free(cp); + format_free(ft); + continue; + } + free(cp); + format_free(ft); + } + tim = ctime(&item->created); *strchr(tim, '\n') = '\0'; -- cgit