diff options
author | Thomas Adam <thomas@xteddy.org> | 2017-05-03 08:01:14 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2017-05-03 08:01:14 +0100 |
commit | 97ecb4f9d8392f48deb810a557142eb97d5345dc (patch) | |
tree | 66dbf4ca968d2d396b9e2365d72db4e76cf5c91a | |
parent | e354b0e40fe1be1e1f8977d424e02e6487039a56 (diff) | |
parent | ca6a121e63c61eb45a81dc7318ed290b8dca45e6 (diff) | |
download | rtmux-97ecb4f9d8392f48deb810a557142eb97d5345dc.tar.gz rtmux-97ecb4f9d8392f48deb810a557142eb97d5345dc.tar.bz2 rtmux-97ecb4f9d8392f48deb810a557142eb97d5345dc.zip |
Merge branch 'obsd-master'
-rw-r--r-- | format.c | 2 | ||||
-rw-r--r-- | status.c | 8 | ||||
-rw-r--r-- | tmux.1 | 1 | ||||
-rw-r--r-- | tmux.h | 1 | ||||
-rw-r--r-- | window-copy.c | 13 |
5 files changed, 24 insertions, 1 deletions
@@ -1366,6 +1366,8 @@ format_defaults_pane(struct format_tree *ft, struct window_pane *wp) format_add(ft, "pane_in_mode", "%d", wp->screen != &wp->base); format_add(ft, "pane_synchronized", "%d", !!options_get_number(wp->window->options, "synchronize-panes")); + format_add(ft, "pane_search_string", "%s", + window_copy_search_string(wp)); format_add(ft, "pane_tty", "%s", wp->tty); format_add(ft, "pane_pid", "%ld", (long) wp->pid); @@ -661,7 +661,7 @@ status_prompt_set(struct client *c, const char *msg, const char *input, { struct format_tree *ft; time_t t; - char *tmp; + char *tmp, *cp; ft = format_create(c, NULL, FORMAT_NONE, 0); format_defaults(ft, c, NULL, NULL, NULL); @@ -690,6 +690,12 @@ status_prompt_set(struct client *c, const char *msg, const char *input, c->tty.flags |= (TTY_NOCURSOR|TTY_FREEZE); c->flags |= CLIENT_STATUS; + if ((flags & PROMPT_INCREMENTAL) && *tmp != '\0') { + xasprintf(&cp, "=%s", tmp); + c->prompt_callbackfn(c->prompt_data, cp, 0); + free(cp); + } + free(tmp); format_free(ft); } @@ -3568,6 +3568,7 @@ The following variables are available, where appropriate: .It Li "pane_left" Ta "" Ta "Left of pane" .It Li "pane_pid" Ta "" Ta "PID of first process in pane" .It Li "pane_right" Ta "" Ta "Right of pane" +.It Li "pane_search_string" Ta "" Ta "Last search string in copy mode" .It Li "pane_start_command" Ta "" Ta "Command pane started with" .It Li "pane_synchronized" Ta "" Ta "If pane is synchronized" .It Li "pane_tabs" Ta "" Ta "Pane tab positions" @@ -2175,6 +2175,7 @@ void window_copy_vadd(struct window_pane *, const char *, va_list); void window_copy_pageup(struct window_pane *, int); void window_copy_start_drag(struct client *, struct mouse_event *); int window_copy_scroll_position(struct window_pane *); +const char *window_copy_search_string(struct window_pane *); /* window-choose.c */ extern const struct window_mode window_choose_mode; diff --git a/window-copy.c b/window-copy.c index 0896479a..7def63db 100644 --- a/window-copy.c +++ b/window-copy.c @@ -2480,3 +2480,16 @@ window_copy_drag_update(__unused struct client *c, struct mouse_event *m) if (window_copy_update_selection(wp, 1)) window_copy_redraw_selection(wp, old_cy); } + +const char * +window_copy_search_string(struct window_pane *wp) +{ + struct window_copy_mode_data *data; + + if (wp->mode != &window_copy_mode) + return (""); + data = wp->modedata; + if (data->searchtype == WINDOW_COPY_OFF || data->searchstr == NULL) + return (""); + return (data->searchstr); +} |