summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1307
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1307')
-rw-r--r--data/vim/patches/8.1.1307278
1 files changed, 278 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1307 b/data/vim/patches/8.1.1307
new file mode 100644
index 000000000..e38d2b327
--- /dev/null
+++ b/data/vim/patches/8.1.1307
@@ -0,0 +1,278 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1307
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1307
+Problem: Cannot reconnect to the X server after it restarted.
+Solution: Add the :xrestore command. (Adrian Kocis, closes #844)
+Files: runtime/doc/index.txt, runtime/doc/various.txt, src/os_unix.c,
+ src/proto/os_unix.pro, src/globals.h, src/ex_cmds.h,
+ src/ex_cmdidxs.h, src/ex_docmd.c, src/testdir/test_paste.vim
+
+
+*** ../vim-8.1.1306/runtime/doc/index.txt 2019-05-05 18:11:46.316590662 +0200
+--- runtime/doc/index.txt 2019-05-09 16:55:09.231912512 +0200
+***************
+*** 1714,1719 ****
+--- 1714,1720 ----
+ |:xmapclear| :xmapc[lear] remove all mappings for Visual mode
+ |:xmap| :xm[ap] like ":map" but for Visual mode
+ |:xmenu| :xme[nu] add menu for Visual mode
++ |:xrestore| :xr[estore] restores the X server connection
+ |:xnoremap| :xn[oremap] like ":noremap" but for Visual mode
+ |:xnoremenu| :xnoreme[nu] like ":noremenu" but for Visual mode
+ |:xunmap| :xu[nmap] like ":unmap" but for Visual mode
+*** ../vim-8.1.1306/runtime/doc/various.txt 2019-05-05 18:11:46.328590595 +0200
+--- runtime/doc/various.txt 2019-05-09 16:57:27.375214537 +0200
+***************
+*** 704,709 ****
+--- 704,724 ----
+ available when compiled with the |+netbeans_intg|
+ feature}
+
++ *:xrestore* *:xr*
++ :xr[estore] [display] Reinitializes the connection to the X11 server. Useful
++ after the X server restarts, e.g. when running Vim for
++ long time inside screen/tmux and connecting from
++ different machines).
++ [display] should be in the format of the $DISPLAY
++ environment variable (e.g. "localhost:10.0")
++ If [display] is omitted, then it reinitializes the
++ connection to the X11 server using the same value as
++ was used for the previous execution of this command.
++ If the value was never specified, then it uses the
++ value of $DISPLAY environment variable as it was when
++ Vim was started.
++ {only available when compiled with the |+clipboard|
++ feature}
+
+ *g_CTRL-A*
+ g CTRL-A Only when Vim was compiled with MEM_PROFILING defined
+*** ../vim-8.1.1306/src/os_unix.c 2019-05-04 17:34:30.653353882 +0200
+--- src/os_unix.c 2019-05-09 18:51:32.467132185 +0200
+***************
+*** 1659,1664 ****
+--- 1659,1683 ----
+ get_x11_title(FALSE);
+ }
+ }
++
++ void
++ ex_xrestore(exarg_T *eap)
++ {
++ if (eap->arg != NULL && STRLEN(eap->arg) > 0)
++ {
++ if (xterm_display_allocated)
++ vim_free(xterm_display);
++ xterm_display = (char *)vim_strsave(eap->arg);
++ xterm_display_allocated = TRUE;
++ }
++ smsg(_("restoring display %s"), xterm_display == NULL
++ ? (char *)mch_getenv("DISPLAY") : xterm_display);
++
++ clear_xterm_clip();
++ x11_window = 0;
++ xterm_dpy_retry_count = 5; // Try reconnecting five times
++ may_restore_clipboard();
++ }
+ #endif
+
+ /*
+***************
+*** 1761,1766 ****
+--- 1780,1789 ----
+ x11_window = (Window)atol(winid);
+
+ #ifdef FEAT_XCLIPBOARD
++ if (xterm_dpy == x11_display)
++ // x11_display may have been set to xterm_dpy elsewhere
++ x11_display_from = XD_XTERM;
++
+ if (xterm_dpy != NULL && x11_window != 0)
+ {
+ /* We may have checked it already, but Gnome terminal can move us to
+***************
+*** 7661,7667 ****
+ return TRUE;
+ }
+
+! # if defined(FEAT_GUI) || defined(PROTO)
+ /*
+ * Destroy the display, window and app_context. Required for GTK.
+ */
+--- 7684,7690 ----
+ return TRUE;
+ }
+
+! # if defined(FEAT_GUI) || defined(FEAT_XCLIPBOARD) || defined(PROTO)
+ /*
+ * Destroy the display, window and app_context. Required for GTK.
+ */
+*** ../vim-8.1.1306/src/proto/os_unix.pro 2019-05-04 17:34:30.653353882 +0200
+--- src/proto/os_unix.pro 2019-05-09 17:11:39.922883130 +0200
+***************
+*** 13,18 ****
+--- 13,19 ----
+ int vim_handle_signal(int sig);
+ int mch_check_win(int argc, char **argv);
+ int mch_input_isatty(void);
++ void ex_xrestore(exarg_T *eap);
+ int mch_can_restore_title(void);
+ int mch_can_restore_icon(void);
+ void mch_settitle(char_u *title, char_u *icon);
+*** ../vim-8.1.1306/src/globals.h 2019-05-02 23:00:19.227658452 +0200
+--- src/globals.h 2019-05-09 17:02:10.449779876 +0200
+***************
+*** 1279,1287 ****
+ #endif
+
+ #ifdef FEAT_XCLIPBOARD
+! EXTERN char *xterm_display INIT(= NULL); /* xterm display name; points
+! into argv[] */
+! EXTERN Display *xterm_dpy INIT(= NULL); /* xterm display pointer */
+ #endif
+ #if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11)
+ EXTERN XtAppContext app_context INIT(= (XtAppContext)NULL);
+--- 1279,1292 ----
+ #endif
+
+ #ifdef FEAT_XCLIPBOARD
+! // xterm display name
+! EXTERN char *xterm_display INIT(= NULL);
+!
+! // whether xterm_display was allocated, when FALSE it points into argv[]
+! EXTERN int xterm_display_allocated INIT(= FALSE);
+!
+! // xterm display pointer
+! EXTERN Display *xterm_dpy INIT(= NULL);
+ #endif
+ #if defined(FEAT_XCLIPBOARD) || defined(FEAT_GUI_X11)
+ EXTERN XtAppContext app_context INIT(= (XtAppContext)NULL);
+*** ../vim-8.1.1306/src/ex_cmds.h 2019-05-05 21:00:22.850603981 +0200
+--- src/ex_cmds.h 2019-05-09 17:12:48.258535032 +0200
+***************
+*** 1739,1744 ****
+--- 1739,1747 ----
+ EX(CMD_xnoremenu, "xnoremenu", ex_menu,
+ RANGE|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_OTHER),
++ EX(CMD_xrestore, "xrestore", ex_xrestore,
++ EXTRA|TRLBAR|CMDWIN,
++ ADDR_NONE),
+ EX(CMD_xunmap, "xunmap", ex_unmap,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
+ ADDR_NONE),
+*** ../vim-8.1.1306/src/ex_cmdidxs.h 2019-05-05 15:02:26.176319819 +0200
+--- src/ex_cmdidxs.h 2019-05-09 17:12:57.942485705 +0200
+***************
+*** 29,36 ****
+ /* v */ 503,
+ /* w */ 521,
+ /* x */ 535,
+! /* y */ 544,
+! /* z */ 545
+ };
+
+ /*
+--- 29,36 ----
+ /* v */ 503,
+ /* w */ 521,
+ /* x */ 535,
+! /* y */ 545,
+! /* z */ 546
+ };
+
+ /*
+***************
+*** 64,72 ****
+ /* u */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* v */ { 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 12, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0 },
+ /* w */ { 2, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 8, 0, 9, 10, 0, 0, 0, 12, 13, 0, 0, 0, 0 },
+! /* x */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0 },
+ /* y */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ };
+
+! static const int command_count = 558;
+--- 64,72 ----
+ /* u */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* v */ { 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 9, 12, 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0 },
+ /* w */ { 2, 0, 0, 0, 0, 0, 0, 3, 4, 0, 0, 0, 0, 8, 0, 9, 10, 0, 0, 0, 12, 13, 0, 0, 0, 0 },
+! /* x */ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 0, 0, 0, 7, 0, 0, 8, 0, 0, 0, 0, 0 },
+ /* y */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* z */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+ };
+
+! static const int command_count = 559;
+*** ../vim-8.1.1306/src/ex_docmd.c 2019-05-07 22:06:48.679310672 +0200
+--- src/ex_docmd.c 2019-05-09 17:18:30.268791994 +0200
+***************
+*** 394,399 ****
+--- 394,402 ----
+ #ifndef FEAT_TERMINAL
+ # define ex_terminal ex_ni
+ #endif
++ #if !defined(FEAT_X11) || !defined(FEAT_XCLIPBOARD)
++ # define ex_xrestore ex_ni
++ #endif
+
+ /*
+ * Declare cmdnames[].
+*** ../vim-8.1.1306/src/testdir/test_paste.vim 2019-03-23 13:30:19.247356528 +0100
+--- src/testdir/test_paste.vim 2019-05-09 18:42:01.986284433 +0200
+***************
+*** 110,112 ****
+--- 110,138 ----
+
+ bwipe!
+ endfunc
++
++ func CheckCopyPaste()
++ call setline(1, ['copy this', ''])
++ normal 1G0"*y$
++ normal j"*p
++ call assert_equal('copy this', getline(2))
++ endfunc
++
++ func Test_xrestore()
++ if !has('xterm_clipboard')
++ return
++ endif
++ call ch_logfile('logfile', 'w')
++ let display = $DISPLAY
++ new
++ call CheckCopyPaste()
++
++ xrestore
++ call CheckCopyPaste()
++
++ exe "xrestore " .. display
++ call CheckCopyPaste()
++
++ call ch_logfile('', '')
++ bwipe!
++ endfunc
+*** ../vim-8.1.1306/src/version.c 2019-05-09 15:12:45.180723879 +0200
+--- src/version.c 2019-05-09 18:57:26.853142128 +0200
+***************
+*** 769,770 ****
+--- 769,772 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1307,
+ /**/
+
+--
+NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE
+ MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///