from Michael Grant.
-/* $OpenBSD: format.c,v 1.319 2024/08/21 04:17:09 nicm Exp $ */
+/* $OpenBSD: format.c,v 1.320 2024/08/26 07:14:40 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
return (NULL);
if (!TAILQ_EMPTY(&wp->modes)) {
- if (TAILQ_FIRST(&wp->modes)->mode == &window_copy_mode ||
- TAILQ_FIRST(&wp->modes)->mode == &window_view_mode)
+ if (window_pane_mode(wp) != WINDOW_PANE_NO_MODE)
return (window_copy_get_word(wp, x, y));
return (NULL);
}
return (NULL);
if (!TAILQ_EMPTY(&wp->modes)) {
- if (TAILQ_FIRST(&wp->modes)->mode == &window_copy_mode ||
- TAILQ_FIRST(&wp->modes)->mode == &window_view_mode)
+ if (window_pane_mode(wp) != WINDOW_PANE_NO_MODE)
return (window_copy_get_line(wp, y));
return (NULL);
}
-/* $OpenBSD: tmux.h,v 1.1223 2024/08/26 07:09:34 nicm Exp $ */
+/* $OpenBSD: tmux.h,v 1.1224 2024/08/26 07:14:40 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
#define PANE_BORDER_ARROWS 2
#define PANE_BORDER_BOTH 3
+/* Mode returned by window_pane_mode function. */
+#define WINDOW_PANE_NO_MODE 0
+#define WINDOW_PANE_COPY_MODE 1
+#define WINDOW_PANE_VIEW_MODE 2
+
/* Screen redraw context. */
struct screen_redraw_ctx {
struct client *c;
struct window_pane_offset *, size_t);
void window_set_fill_character(struct window *);
void window_pane_default_cursor(struct window_pane *);
+int window_pane_mode(struct window_pane *);
/* layout.c */
u_int layout_count_cells(struct layout_cell *);
-/* $OpenBSD: window.c,v 1.291 2024/06/24 08:30:50 nicm Exp $ */
+/* $OpenBSD: window.c,v 1.292 2024/08/26 07:14:40 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
s->default_mode = 0;
screen_set_cursor_style(c, &s->default_cstyle, &s->default_mode);
}
+
+int
+window_pane_mode(struct window_pane *wp)
+{
+ if (TAILQ_FIRST(&wp->modes) != NULL) {
+ if (TAILQ_FIRST(&wp->modes)->mode == &window_copy_mode)
+ return (WINDOW_PANE_COPY_MODE);
+ if (TAILQ_FIRST(&wp->modes)->mode == &window_view_mode)
+ return (WINDOW_PANE_VIEW_MODE);
+ }
+ return (WINDOW_PANE_NO_MODE);
+}