patch 9.1.1485: missing Wayland clipboard support
Problem: missing Wayland clipboard support
Solution: make it work (Foxe Chen)
fixes: #5157
closes: #17097
Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/proto/clipboard.pro b/src/proto/clipboard.pro
index f3e8cab..e21f1e2 100644
--- a/src/proto/clipboard.pro
+++ b/src/proto/clipboard.pro
@@ -35,4 +35,10 @@
int may_get_selection(int regname);
void may_set_selection(void);
void adjust_clip_reg(int *rp);
+void clip_wl_request_selection(Clipboard_T *cbd);
+int clip_wl_own_selection(Clipboard_T *cbd);
+void clip_wl_lose_selection(Clipboard_T *cbd);
+void clip_wl_set_selection(Clipboard_T *cbd);
+char *choose_clipmethod(void);
+void ex_clipreset(exarg_T *eap);
/* vim: set ft=c : */
diff --git a/src/proto/option.pro b/src/proto/option.pro
index f9ae7c4..b93a252 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -88,6 +88,8 @@
char *did_set_winminheight(optset_T *args);
char *did_set_winminwidth(optset_T *args);
char *did_set_winwidth(optset_T *args);
+char *did_set_wlsteal(optset_T *args);
+char *did_set_wltimeoutlen(optset_T *args);
char *did_set_wrap(optset_T *args);
char *did_set_xhistory(optset_T *args);
void check_redraw(long_u flags);
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index 84dd1fb..2d5e17a 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -34,6 +34,8 @@
char *did_set_casemap(optset_T *args);
int expand_set_casemap(optexpand_T *args, int *numMatches, char_u ***matches);
int expand_set_clipboard(optexpand_T *args, int *numMatches, char_u ***matches);
+char * did_set_clipmethod(optset_T *args);
+int expand_set_clipmethod(optexpand_T *args, int *numMatches, char_u ***matches);
char *did_set_chars_option(optset_T *args);
int expand_set_chars_option(optexpand_T *args, int *numMatches, char_u ***matches);
char *did_set_cinoptions(optset_T *args);
@@ -138,6 +140,7 @@
char *did_set_rulerformat(optset_T *args);
char *did_set_scrollopt(optset_T *args);
int expand_set_scrollopt(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_wlseat(optset_T *args);
char *did_set_selection(optset_T *args);
int expand_set_selection(optexpand_T *args, int *numMatches, char_u ***matches);
char *did_set_selectmode(optset_T *args);
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index 5fee8a5..ae0cdbb 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -82,6 +82,7 @@
void start_xterm_trace(int button);
void stop_xterm_trace(void);
void clear_xterm_clip(void);
+void xterm_update(void);
int clip_xterm_own_selection(Clipboard_T *cbd);
void clip_xterm_lose_selection(Clipboard_T *cbd);
void clip_xterm_request_selection(Clipboard_T *cbd);
@@ -92,4 +93,5 @@
void stop_timeout(void);
volatile sig_atomic_t *start_timeout(long msec);
void delete_timer(void);
+int mch_create_anon_file(void);
/* vim: set ft=c : */
diff --git a/src/proto/wayland.pro b/src/proto/wayland.pro
new file mode 100644
index 0000000..990bd04
--- /dev/null
+++ b/src/proto/wayland.pro
@@ -0,0 +1,17 @@
+/* wayland.c */
+int wayland_init_client(const char *display);
+void wayland_uninit_client(void);
+int wayland_client_is_connected(int quiet);
+int wayland_client_update(void);
+int wayland_cb_init(const char *seat);
+void wayland_cb_uninit(void);
+garray_T * wayland_cb_get_mime_types(wayland_selection_T selection);
+int wayland_cb_receive_data(const char *mime_type, wayland_selection_T selection);
+int wayland_cb_own_selection( wayland_cb_send_data_func_T send_cb, wayland_cb_selection_cancelled_func_T cancelled_cb, const char **mime_types, int len, wayland_selection_T selection);
+void wayland_cb_lose_selection(wayland_selection_T selection);
+int wayland_cb_selection_is_owned(wayland_selection_T selection);
+int wayland_cb_is_ready(void);
+int wayland_cb_reload(void);
+int wayland_may_restore_connection(void);
+void ex_wlrestore(exarg_T *eap);
+/* vim: set ft=c : */