summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1315
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1315')
-rw-r--r--data/vim/patches/8.1.1315737
1 files changed, 0 insertions, 737 deletions
diff --git a/data/vim/patches/8.1.1315 b/data/vim/patches/8.1.1315
deleted file mode 100644
index c0f637c7f..000000000
--- a/data/vim/patches/8.1.1315
+++ /dev/null
@@ -1,737 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.1315
-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.1315
-Problem: There is always a delay if a termrequest is never answered.
-Solution: When the response is not received within two seconds consider the
- request to have failed.
-Files: src/term.c
-
-
-*** ../vim-8.1.1314/src/term.c 2019-05-08 16:40:57.753592725 +0200
---- src/term.c 2019-05-10 23:05:59.609307792 +0200
-***************
-*** 110,128 ****
- # define LOG_TR(msg) do { /**/ } while (0)
- # endif
-
-! # define STATUS_GET 1 /* send request when switching to RAW mode */
-! # define STATUS_SENT 2 /* did send request, waiting for response */
-! # define STATUS_GOT 3 /* received response */
-
-! /* Request Terminal Version status: */
-! static int crv_status = STATUS_GET;
-
-! /* Request Cursor position report: */
-! static int u7_status = STATUS_GET;
-
- # ifdef FEAT_TERMINAL
-! /* Request foreground color report: */
-! static int rfg_status = STATUS_GET;
- static int fg_r = 0;
- static int fg_g = 0;
- static int fg_b = 0;
---- 110,138 ----
- # define LOG_TR(msg) do { /**/ } while (0)
- # endif
-
-! typedef enum {
-! STATUS_GET, // send request when switching to RAW mode
-! STATUS_SENT, // did send request, checking for response
-! STATUS_GOT, // received response
-! STATUS_FAIL // timed out
-! } request_progress_T;
-!
-! typedef struct {
-! request_progress_T tr_progress;
-! time_t tr_start; // when request was sent, -1 for never
-! } termrequest_T;
-
-! # define TERMREQUEST_INIT {STATUS_GET, -1}
-
-! // Request Terminal Version status:
-! static termrequest_T crv_status = TERMREQUEST_INIT;
-!
-! // Request Cursor position report:
-! static termrequest_T u7_status = TERMREQUEST_INIT;
-
- # ifdef FEAT_TERMINAL
-! // Request foreground color report:
-! static termrequest_T rfg_status = TERMREQUEST_INIT;
- static int fg_r = 0;
- static int fg_g = 0;
- static int fg_b = 0;
-***************
-*** 132,147 ****
- # endif
-
- /* Request background color report: */
-! static int rbg_status = STATUS_GET;
-
- /* Request cursor blinking mode report: */
-! static int rbm_status = STATUS_GET;
-
- /* Request cursor style report: */
-! static int rcs_status = STATUS_GET;
-
- /* Request windos position report: */
-! static int winpos_status = STATUS_GET;
- # endif
-
- /*
---- 142,170 ----
- # endif
-
- /* Request background color report: */
-! static termrequest_T rbg_status = TERMREQUEST_INIT;
-
- /* Request cursor blinking mode report: */
-! static termrequest_T rbm_status = TERMREQUEST_INIT;
-
- /* Request cursor style report: */
-! static termrequest_T rcs_status = TERMREQUEST_INIT;
-
- /* Request windos position report: */
-! static termrequest_T winpos_status = TERMREQUEST_INIT;
-!
-! static termrequest_T *all_termrequests[] = {
-! &crv_status,
-! &u7_status,
-! # ifdef FEAT_TERMINAL
-! &rfg_status,
-! # endif
-! &rbg_status,
-! &rbm_status,
-! &rcs_status,
-! &winpos_status,
-! NULL
-! };
- # endif
-
- /*
-***************
-*** 2011,2017 ****
- set_term_defaults(); /* use current values as defaults */
- #ifdef FEAT_TERMRESPONSE
- LOG_TR(("setting crv_status to STATUS_GET"));
-! crv_status = STATUS_GET; /* Get terminal version later */
- #endif
-
- /*
---- 2034,2040 ----
- set_term_defaults(); /* use current values as defaults */
- #ifdef FEAT_TERMRESPONSE
- LOG_TR(("setting crv_status to STATUS_GET"));
-! crv_status.tr_progress = STATUS_GET; // Get terminal version later
- #endif
-
- /*
-***************
-*** 2833,2844 ****
- {
- return cur_tmode == TMODE_RAW
- && termcap_active
-! # ifdef UNIX
- && (is_not_a_term() || (isatty(1) && isatty(read_cmd_fd)))
-! # endif
- && p_ek;
- }
-
- static int winpos_x = -1;
- static int winpos_y = -1;
- static int did_request_winpos = 0;
---- 2856,2902 ----
- {
- return cur_tmode == TMODE_RAW
- && termcap_active
-! # ifdef UNIX
- && (is_not_a_term() || (isatty(1) && isatty(read_cmd_fd)))
-! # endif
- && p_ek;
- }
-
-+ /*
-+ * Set "status" to STATUS_SENT.
-+ */
-+ static void
-+ termrequest_sent(termrequest_T *status)
-+ {
-+ status->tr_progress = STATUS_SENT;
-+ status->tr_start = time(NULL);
-+ }
-+
-+ /*
-+ * Return TRUE if any of the requests are in STATUS_SENT.
-+ */
-+ static int
-+ termrequest_any_pending()
-+ {
-+ int i;
-+ time_t now = time(NULL);
-+
-+ for (i = 0; all_termrequests[i] != NULL; ++i)
-+ {
-+ if (all_termrequests[i]->tr_progress == STATUS_SENT)
-+ {
-+ if (all_termrequests[i]->tr_start > 0 && now > 0
-+ && all_termrequests[i]->tr_start + 2 < now)
-+ // Sent the request more than 2 seconds ago and didn't get a
-+ // response, assume it failed.
-+ all_termrequests[i]->tr_progress = STATUS_FAIL;
-+ else
-+ return TRUE;
-+ }
-+ }
-+ return FALSE;
-+ }
-+
- static int winpos_x = -1;
- static int winpos_y = -1;
- static int did_request_winpos = 0;
-***************
-*** 2860,2866 ****
- winpos_x = -1;
- winpos_y = -1;
- ++did_request_winpos;
-! winpos_status = STATUS_SENT;
- OUT_STR(T_CGP);
- out_flush();
-
---- 2918,2924 ----
- winpos_x = -1;
- winpos_y = -1;
- ++did_request_winpos;
-! termrequest_sent(&winpos_status);
- OUT_STR(T_CGP);
- out_flush();
-
-***************
-*** 3478,3495 ****
- if (!gui.in_use && !gui.starting)
- # endif
- {
-! /* May need to check for T_CRV response and termcodes, it
-! * doesn't work in Cooked mode, an external program may get
-! * them. */
-! if (tmode != TMODE_RAW && (crv_status == STATUS_SENT
-! || u7_status == STATUS_SENT
-! #ifdef FEAT_TERMINAL
-! || rfg_status == STATUS_SENT
-! #endif
-! || rbg_status == STATUS_SENT
-! || rbm_status == STATUS_SENT
-! || rcs_status == STATUS_SENT
-! || winpos_status == STATUS_SENT))
- (void)vpeekc_nomap();
- check_for_codes_from_term();
- }
---- 3536,3545 ----
- if (!gui.in_use && !gui.starting)
- # endif
- {
-! // May need to check for T_CRV response and termcodes, it
-! // doesn't work in Cooked mode, an external program may get
-! // them.
-! if (tmode != TMODE_RAW && termrequest_any_pending())
- (void)vpeekc_nomap();
- check_for_codes_from_term();
- }
-***************
-*** 3540,3546 ****
- may_req_termresponse();
- /* Immediately check for a response. If t_Co changes, we don't
- * want to redraw with wrong colors first. */
-! if (crv_status == STATUS_SENT)
- check_for_codes_from_term();
- }
- #endif
---- 3590,3596 ----
- may_req_termresponse();
- /* Immediately check for a response. If t_Co changes, we don't
- * want to redraw with wrong colors first. */
-! if (crv_status.tr_progress == STATUS_SENT)
- check_for_codes_from_term();
- }
- #endif
-***************
-*** 3559,3581 ****
- if (!gui.in_use && !gui.starting)
- # endif
- {
-! /* May need to discard T_CRV, T_U7 or T_RBG response. */
-! if (crv_status == STATUS_SENT
-! || u7_status == STATUS_SENT
-! # ifdef FEAT_TERMINAL
-! || rfg_status == STATUS_SENT
-! # endif
-! || rbg_status == STATUS_SENT
-! || rbm_status == STATUS_SENT
-! || rcs_status == STATUS_SENT
-! || winpos_status == STATUS_SENT)
- {
- # ifdef UNIX
-! /* Give the terminal a chance to respond. */
- mch_delay(100L, FALSE);
- # endif
- # ifdef TCIFLUSH
-! /* Discard data received but not read. */
- if (exiting)
- tcflush(fileno(stdin), TCIFLUSH);
- # endif
---- 3609,3623 ----
- if (!gui.in_use && !gui.starting)
- # endif
- {
-! // May need to discard T_CRV, T_U7 or T_RBG response.
-! if (termrequest_any_pending())
- {
- # ifdef UNIX
-! // Give the terminal a chance to respond.
- mch_delay(100L, FALSE);
- # endif
- # ifdef TCIFLUSH
-! // Discard data received but not read.
- if (exiting)
- tcflush(fileno(stdin), TCIFLUSH);
- # endif
-***************
-*** 3614,3627 ****
- void
- may_req_termresponse(void)
- {
-! if (crv_status == STATUS_GET
- && can_get_termresponse()
- && starting == 0
- && *T_CRV != NUL)
- {
- LOG_TR(("Sending CRV request"));
- out_str(T_CRV);
-! crv_status = STATUS_SENT;
- /* check for the characters now, otherwise they might be eaten by
- * get_keystroke() */
- out_flush();
---- 3656,3669 ----
- void
- may_req_termresponse(void)
- {
-! if (crv_status.tr_progress == STATUS_GET
- && can_get_termresponse()
- && starting == 0
- && *T_CRV != NUL)
- {
- LOG_TR(("Sending CRV request"));
- out_str(T_CRV);
-! termrequest_sent(&crv_status);
- /* check for the characters now, otherwise they might be eaten by
- * get_keystroke() */
- out_flush();
-***************
-*** 3641,3677 ****
- void
- may_req_ambiguous_char_width(void)
- {
-! if (u7_status == STATUS_GET
- && can_get_termresponse()
- && starting == 0
- && *T_U7 != NUL
- && !option_was_set((char_u *)"ambiwidth"))
- {
-! char_u buf[16];
-
-! LOG_TR(("Sending U7 request"));
-! /* Do this in the second row. In the first row the returned sequence
-! * may be CSI 1;2R, which is the same as <S-F3>. */
-! term_windgoto(1, 0);
-! buf[mb_char2bytes(0x25bd, buf)] = 0;
-! out_str(buf);
-! out_str(T_U7);
-! u7_status = STATUS_SENT;
-! out_flush();
-!
-! /* This overwrites a few characters on the screen, a redraw is needed
-! * after this. Clear them out for now. */
-! term_windgoto(1, 0);
-! out_str((char_u *)" ");
-! term_windgoto(0, 0);
-!
-! /* Need to reset the known cursor position. */
-! screen_start();
-!
-! /* check for the characters now, otherwise they might be eaten by
-! * get_keystroke() */
-! out_flush();
-! (void)vpeekc_nomap();
- }
- }
-
---- 3683,3719 ----
- void
- may_req_ambiguous_char_width(void)
- {
-! if (u7_status.tr_progress == STATUS_GET
- && can_get_termresponse()
- && starting == 0
- && *T_U7 != NUL
- && !option_was_set((char_u *)"ambiwidth"))
- {
-! char_u buf[16];
-!
-! LOG_TR(("Sending U7 request"));
-! /* Do this in the second row. In the first row the returned sequence
-! * may be CSI 1;2R, which is the same as <S-F3>. */
-! term_windgoto(1, 0);
-! buf[mb_char2bytes(0x25bd, buf)] = 0;
-! out_str(buf);
-! out_str(T_U7);
-! termrequest_sent(&u7_status);
-! out_flush();
-!
-! /* This overwrites a few characters on the screen, a redraw is needed
-! * after this. Clear them out for now. */
-! term_windgoto(1, 0);
-! out_str((char_u *)" ");
-! term_windgoto(0, 0);
-!
-! /* Need to reset the known cursor position. */
-! screen_start();
-
-! /* check for the characters now, otherwise they might be eaten by
-! * get_keystroke() */
-! out_flush();
-! (void)vpeekc_nomap();
- }
- }
-
-***************
-*** 3688,3708 ****
-
- # ifdef FEAT_TERMINAL
- /* Only request foreground if t_RF is set. */
-! if (rfg_status == STATUS_GET && *T_RFG != NUL)
- {
- LOG_TR(("Sending FG request"));
- out_str(T_RFG);
-! rfg_status = STATUS_SENT;
- didit = TRUE;
- }
- # endif
-
- /* Only request background if t_RB is set. */
-! if (rbg_status == STATUS_GET && *T_RBG != NUL)
- {
- LOG_TR(("Sending BG request"));
- out_str(T_RBG);
-! rbg_status = STATUS_SENT;
- didit = TRUE;
- }
-
---- 3730,3750 ----
-
- # ifdef FEAT_TERMINAL
- /* Only request foreground if t_RF is set. */
-! if (rfg_status.tr_progress == STATUS_GET && *T_RFG != NUL)
- {
- LOG_TR(("Sending FG request"));
- out_str(T_RFG);
-! termrequest_sent(&rfg_status);
- didit = TRUE;
- }
- # endif
-
- /* Only request background if t_RB is set. */
-! if (rbg_status.tr_progress == STATUS_GET && *T_RBG != NUL)
- {
- LOG_TR(("Sending BG request"));
- out_str(T_RBG);
-! termrequest_sent(&rbg_status);
- didit = TRUE;
- }
-
-***************
-*** 3962,3968 ****
- blink_state_is_inverted()
- {
- #ifdef FEAT_TERMRESPONSE
-! return rbm_status == STATUS_GOT && rcs_status == STATUS_GOT
- && initial_cursor_blink != initial_cursor_shape_blink;
- #else
- return FALSE;
---- 4004,4010 ----
- blink_state_is_inverted()
- {
- #ifdef FEAT_TERMRESPONSE
-! return rbm_status.tr_progress == STATUS_GOT && rcs_status.tr_progress == STATUS_GOT
- && initial_cursor_blink != initial_cursor_shape_blink;
- #else
- return FALSE;
-***************
-*** 4651,4657 ****
- char *aw = NULL;
-
- LOG_TR(("Received U7 status: %s", tp));
-! u7_status = STATUS_GOT;
- did_cursorhold = TRUE;
- if (col == 2)
- aw = "single";
---- 4693,4699 ----
- char *aw = NULL;
-
- LOG_TR(("Received U7 status: %s", tp));
-! u7_status.tr_progress = STATUS_GOT;
- did_cursorhold = TRUE;
- if (col == 2)
- aw = "single";
-***************
-*** 4689,4695 ****
- int version = col;
-
- LOG_TR(("Received CRV response: %s", tp));
-! crv_status = STATUS_GOT;
- did_cursorhold = TRUE;
-
- /* If this code starts with CSI, you can bet that the
---- 4731,4737 ----
- int version = col;
-
- LOG_TR(("Received CRV response: %s", tp));
-! crv_status.tr_progress = STATUS_GOT;
- did_cursorhold = TRUE;
-
- /* If this code starts with CSI, you can bet that the
-***************
-*** 4804,4810 ****
- * 279 (otherwise it returns 0x18).
- * Not for Terminal.app, it can't handle t_RS, it
- * echoes the characters to the screen. */
-! if (rcs_status == STATUS_GET
- && version >= 279
- && !is_not_xterm
- && *T_CSH != NUL
---- 4846,4852 ----
- * 279 (otherwise it returns 0x18).
- * Not for Terminal.app, it can't handle t_RS, it
- * echoes the characters to the screen. */
-! if (rcs_status.tr_progress == STATUS_GET
- && version >= 279
- && !is_not_xterm
- && *T_CSH != NUL
-***************
-*** 4812,4831 ****
- {
- LOG_TR(("Sending cursor style request"));
- out_str(T_CRS);
-! rcs_status = STATUS_SENT;
- need_flush = TRUE;
- }
-
- /* Only request the cursor blink mode if t_RC set. Not
- * for Gnome terminal, it can't handle t_RC, it
- * echoes the characters to the screen. */
-! if (rbm_status == STATUS_GET
- && !is_not_xterm
- && *T_CRC != NUL)
- {
- LOG_TR(("Sending cursor blink mode request"));
- out_str(T_CRC);
-! rbm_status = STATUS_SENT;
- need_flush = TRUE;
- }
-
---- 4854,4873 ----
- {
- LOG_TR(("Sending cursor style request"));
- out_str(T_CRS);
-! termrequest_sent(&rcs_status);
- need_flush = TRUE;
- }
-
- /* Only request the cursor blink mode if t_RC set. Not
- * for Gnome terminal, it can't handle t_RC, it
- * echoes the characters to the screen. */
-! if (rbm_status.tr_progress == STATUS_GET
- && !is_not_xterm
- && *T_CRC != NUL)
- {
- LOG_TR(("Sending cursor blink mode request"));
- out_str(T_CRC);
-! termrequest_sent(&rbm_status);
- need_flush = TRUE;
- }
-
-***************
-*** 4848,4854 ****
- *
- * {lead} can be <Esc>[ or CSI
- */
-! else if (rbm_status == STATUS_SENT
- && tp[(j = 1 + (tp[0] == ESC))] == '?'
- && i == j + 6
- && tp[j + 1] == '1'
---- 4890,4896 ----
- *
- * {lead} can be <Esc>[ or CSI
- */
-! else if (rbm_status.tr_progress == STATUS_SENT
- && tp[(j = 1 + (tp[0] == ESC))] == '?'
- && i == j + 6
- && tp[j + 1] == '1'
-***************
-*** 4858,4864 ****
- && tp[i] == 'y')
- {
- initial_cursor_blink = (tp[j + 4] == '1');
-! rbm_status = STATUS_GOT;
- LOG_TR(("Received cursor blinking mode response: %s", tp));
- key_name[0] = (int)KS_EXTRA;
- key_name[1] = (int)KE_IGNORE;
---- 4900,4906 ----
- && tp[i] == 'y')
- {
- initial_cursor_blink = (tp[j + 4] == '1');
-! rbm_status.tr_progress = STATUS_GOT;
- LOG_TR(("Received cursor blinking mode response: %s", tp));
- key_name[0] = (int)KS_EXTRA;
- key_name[1] = (int)KE_IGNORE;
-***************
-*** 4896,4902 ****
- slen = i + 1;
-
- if (--did_request_winpos <= 0)
-! winpos_status = STATUS_GOT;
- }
- }
- if (i == len)
---- 4938,4944 ----
- slen = i + 1;
-
- if (--did_request_winpos <= 0)
-! winpos_status.tr_progress = STATUS_GOT;
- }
- }
- if (i == len)
-***************
-*** 4948,4954 ****
- + tp[j+17]) ? "light" : "dark";
-
- LOG_TR(("Received RBG response: %s", tp));
-! rbg_status = STATUS_GOT;
- # ifdef FEAT_TERMINAL
- bg_r = rval;
- bg_g = gval;
---- 4990,4996 ----
- + tp[j+17]) ? "light" : "dark";
-
- LOG_TR(("Received RBG response: %s", tp));
-! rbg_status.tr_progress = STATUS_GOT;
- # ifdef FEAT_TERMINAL
- bg_r = rval;
- bg_g = gval;
-***************
-*** 4968,4974 ****
- else
- {
- LOG_TR(("Received RFG response: %s", tp));
-! rfg_status = STATUS_GOT;
- fg_r = rval;
- fg_g = gval;
- fg_b = bval;
---- 5010,5016 ----
- else
- {
- LOG_TR(("Received RFG response: %s", tp));
-! rfg_status.tr_progress = STATUS_GOT;
- fg_r = rval;
- fg_g = gval;
- fg_b = bval;
-***************
-*** 5008,5014 ****
- *
- * Consume any code that starts with "{lead}.+r" or "{lead}.$r".
- */
-! else if ((check_for_codes || rcs_status == STATUS_SENT)
- && ((tp[0] == ESC && len >= 2 && tp[1] == 'P')
- || tp[0] == DCS))
- {
---- 5050,5056 ----
- *
- * Consume any code that starts with "{lead}.+r" or "{lead}.$r".
- */
-! else if ((check_for_codes || rcs_status.tr_progress == STATUS_SENT)
- && ((tp[0] == ESC && len >= 2 && tp[1] == 'P')
- || tp[0] == DCS))
- {
-***************
-*** 5061,5067 ****
- * the value set with T_SH. */
- initial_cursor_shape_blink =
- (number & 1) ? FALSE : TRUE;
-! rcs_status = STATUS_GOT;
- LOG_TR(("Received cursor shape response: %s", tp));
-
- key_name[0] = (int)KS_EXTRA;
---- 5103,5109 ----
- * the value set with T_SH. */
- initial_cursor_shape_blink =
- (number & 1) ? FALSE : TRUE;
-! rcs_status.tr_progress = STATUS_GOT;
- LOG_TR(("Received cursor shape response: %s", tp));
-
- key_name[0] = (int)KS_EXTRA;
-***************
-*** 6045,6051 ****
- void
- term_get_fg_color(char_u *r, char_u *g, char_u *b)
- {
-! if (rfg_status == STATUS_GOT)
- {
- *r = fg_r;
- *g = fg_g;
---- 6087,6093 ----
- void
- term_get_fg_color(char_u *r, char_u *g, char_u *b)
- {
-! if (rfg_status.tr_progress == STATUS_GOT)
- {
- *r = fg_r;
- *g = fg_g;
-***************
-*** 6059,6065 ****
- void
- term_get_bg_color(char_u *r, char_u *g, char_u *b)
- {
-! if (rbg_status == STATUS_GOT)
- {
- *r = bg_r;
- *g = bg_g;
---- 6101,6107 ----
- void
- term_get_bg_color(char_u *r, char_u *g, char_u *b)
- {
-! if (rbg_status.tr_progress == STATUS_GOT)
- {
- *r = bg_r;
- *g = bg_g;
-*** ../vim-8.1.1314/src/version.c 2019-05-10 21:38:50.037438773 +0200
---- src/version.c 2019-05-10 23:03:34.393608039 +0200
-***************
-*** 769,770 ****
---- 769,772 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 1315,
- /**/
-
---
-Wi n0t trei a h0liday in Sweden thi yer?
- "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 ///