aboutsummaryrefslogtreecommitdiff
path: root/window.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2017-05-29 20:01:12 +0100
committerThomas Adam <thomas@xteddy.org>2017-05-29 20:01:12 +0100
commit5bc5fe5e7e137a1644be6312778dc055f8040399 (patch)
tree58909ec88e31dcb1af3d0d2fbb9b2e97445c1297 /window.c
parentd3959a21185d7a1682d033982921753baa689a41 (diff)
parenta2ace9da24491c46e704ce6120dcb7e6c9d21c20 (diff)
downloadrtmux-5bc5fe5e7e137a1644be6312778dc055f8040399.tar.gz
rtmux-5bc5fe5e7e137a1644be6312778dc055f8040399.tar.bz2
rtmux-5bc5fe5e7e137a1644be6312778dc055f8040399.zip
Merge branch 'obsd-master'
Diffstat (limited to 'window.c')
-rw-r--r--window.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/window.c b/window.c
index f5024c43..10293dea 100644
--- a/window.c
+++ b/window.c
@@ -1282,8 +1282,32 @@ window_pane_visible(struct window_pane *wp)
return (!window_pane_outside(wp));
}
+u_int
+window_pane_search(struct window_pane *wp, const char *searchstr)
+{
+ struct screen *s = &wp->base;
+ char *newsearchstr, *line;
+ u_int i;
+
+ xasprintf(&newsearchstr, "*%s*", searchstr);
+
+ for (i = 0; i < screen_size_y(s); i++) {
+ line = grid_view_string_cells(s->grid, 0, i, screen_size_x(s));
+ if (fnmatch(newsearchstr, line, 0) == 0) {
+ free(line);
+ break;
+ }
+ free(line);
+ }
+
+ free(newsearchstr);
+ if (i == screen_size_y(s))
+ return (0);
+ return (i + 1);
+}
+
char *
-window_pane_search(struct window_pane *wp, const char *searchstr,
+window_pane_search_old(struct window_pane *wp, const char *searchstr,
u_int *lineno)
{
struct screen *s = &wp->base;