summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0013
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0013')
-rw-r--r--data/vim/patches/8.1.0013205
1 files changed, 0 insertions, 205 deletions
diff --git a/data/vim/patches/8.1.0013 b/data/vim/patches/8.1.0013
deleted file mode 100644
index fedac815d..000000000
--- a/data/vim/patches/8.1.0013
+++ /dev/null
@@ -1,205 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0013
-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.0013
-Problem: Using freed memory when changing terminal cursor color.
-Solution: Make a copy of the color. (Dominique Pelle, closes #2938,
- closes #2941)
-Files: src/terminal.c
-
-
-*** ../vim-8.1.0012/src/terminal.c 2018-05-17 13:17:10.000000000 +0200
---- src/terminal.c 2018-05-21 14:46:25.723564355 +0200
-***************
-*** 171,178 ****
-
- /* Store the last set and the desired cursor properties, so that we only update
- * them when needed. Doing it unnecessary may result in flicker. */
-! static char_u *last_set_cursor_color = (char_u *)"";
-! static char_u *desired_cursor_color = (char_u *)"";
- static int last_set_cursor_shape = -1;
- static int desired_cursor_shape = -1;
- static int last_set_cursor_blink = -1;
---- 171,178 ----
-
- /* Store the last set and the desired cursor properties, so that we only update
- * them when needed. Doing it unnecessary may result in flicker. */
-! static char_u *last_set_cursor_color = NULL;
-! static char_u *desired_cursor_color = NULL;
- static int last_set_cursor_shape = -1;
- static int desired_cursor_shape = -1;
- static int last_set_cursor_blink = -1;
-***************
-*** 183,188 ****
---- 183,210 ----
- * 1. Generic code for all systems.
- */
-
-+ static void
-+ cursor_color_copy(char_u** to_color, char_u* from_color)
-+ {
-+ vim_free(*to_color);
-+ *to_color = (from_color == NULL) ? NULL : vim_strsave(from_color);
-+ }
-+
-+ static int
-+ cursor_color_equal(char_u *lhs_color, char_u *rhs_color)
-+ {
-+ if (lhs_color != NULL && rhs_color != NULL)
-+ return STRCMP(lhs_color, rhs_color) == 0;
-+ return lhs_color == NULL && rhs_color == NULL;
-+ }
-+
-+ static char_u *
-+ cursor_color_get(char_u *color)
-+ {
-+ return (color == NULL) ? (char_u *)"" : color;
-+ }
-+
-+
- /*
- * Parse 'termwinsize' and set "rows" and "cols" for the terminal size in the
- * current window.
-***************
-*** 823,830 ****
- if (term->tl_out_fd != NULL)
- fclose(term->tl_out_fd);
- #endif
-- if (desired_cursor_color == term->tl_cursor_color)
-- desired_cursor_color = (char_u *)"";
- vim_free(term->tl_cursor_color);
- vim_free(term);
- buf->b_term = NULL;
---- 845,850 ----
-***************
-*** 1954,1967 ****
- static void
- may_output_cursor_props(void)
- {
-! if (STRCMP(last_set_cursor_color, desired_cursor_color) != 0
- || last_set_cursor_shape != desired_cursor_shape
- || last_set_cursor_blink != desired_cursor_blink)
- {
-! last_set_cursor_color = desired_cursor_color;
- last_set_cursor_shape = desired_cursor_shape;
- last_set_cursor_blink = desired_cursor_blink;
-! term_cursor_color(desired_cursor_color);
- if (desired_cursor_shape == -1 || desired_cursor_blink == -1)
- /* this will restore the initial cursor style, if possible */
- ui_cursor_shape_forced(TRUE);
---- 1974,1987 ----
- static void
- may_output_cursor_props(void)
- {
-! if (!cursor_color_equal(last_set_cursor_color, desired_cursor_color)
- || last_set_cursor_shape != desired_cursor_shape
- || last_set_cursor_blink != desired_cursor_blink)
- {
-! cursor_color_copy(&last_set_cursor_color, desired_cursor_color);
- last_set_cursor_shape = desired_cursor_shape;
- last_set_cursor_blink = desired_cursor_blink;
-! term_cursor_color(cursor_color_get(desired_cursor_color));
- if (desired_cursor_shape == -1 || desired_cursor_blink == -1)
- /* this will restore the initial cursor style, if possible */
- ui_cursor_shape_forced(TRUE);
-***************
-*** 1984,1993 ****
- #endif
- if (in_terminal_loop == term)
- {
-! if (term->tl_cursor_color != NULL)
-! desired_cursor_color = term->tl_cursor_color;
-! else
-! desired_cursor_color = (char_u *)"";
- desired_cursor_shape = term->tl_cursor_shape;
- desired_cursor_blink = term->tl_cursor_blink;
- may_output_cursor_props();
---- 2004,2010 ----
- #endif
- if (in_terminal_loop == term)
- {
-! cursor_color_copy(&desired_cursor_color, term->tl_cursor_color);
- desired_cursor_shape = term->tl_cursor_shape;
- desired_cursor_blink = term->tl_cursor_blink;
- may_output_cursor_props();
-***************
-*** 2004,2010 ****
- if (gui.in_use)
- return;
- #endif
-! desired_cursor_color = (char_u *)"";
- desired_cursor_shape = -1;
- desired_cursor_blink = -1;
- may_output_cursor_props();
---- 2021,2027 ----
- if (gui.in_use)
- return;
- #endif
-! cursor_color_copy(&desired_cursor_color, NULL);
- desired_cursor_shape = -1;
- desired_cursor_blink = -1;
- may_output_cursor_props();
-***************
-*** 2624,2636 ****
- break;
-
- case VTERM_PROP_CURSORCOLOR:
-! if (desired_cursor_color == term->tl_cursor_color)
-! desired_cursor_color = (char_u *)"";
-! vim_free(term->tl_cursor_color);
-! if (*value->string == NUL)
-! term->tl_cursor_color = NULL;
-! else
-! term->tl_cursor_color = vim_strsave((char_u *)value->string);
- may_set_cursor_props(term);
- break;
-
---- 2641,2647 ----
- break;
-
- case VTERM_PROP_CURSORCOLOR:
-! cursor_color_copy(&term->tl_cursor_color, (char_u*)value->string);
- may_set_cursor_props(term);
- break;
-
-***************
-*** 4711,4718 ****
- dict_add_nr_str(d, "blink", blink_state_is_inverted()
- ? !term->tl_cursor_blink : term->tl_cursor_blink, NULL);
- dict_add_nr_str(d, "shape", term->tl_cursor_shape, NULL);
-! dict_add_nr_str(d, "color", 0L, term->tl_cursor_color == NULL
-! ? (char_u *)"" : term->tl_cursor_color);
- list_append_dict(l, d);
- }
- }
---- 4722,4728 ----
- dict_add_nr_str(d, "blink", blink_state_is_inverted()
- ? !term->tl_cursor_blink : term->tl_cursor_blink, NULL);
- dict_add_nr_str(d, "shape", term->tl_cursor_shape, NULL);
-! dict_add_nr_str(d, "color", 0L, cursor_color_get(term->tl_cursor_color));
- list_append_dict(l, d);
- }
- }
-*** ../vim-8.1.0012/src/version.c 2018-05-21 13:39:36.051906757 +0200
---- src/version.c 2018-05-21 14:47:20.927181563 +0200
-***************
-*** 763,764 ****
---- 763,766 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 13,
- /**/
-
---
-Friends? I have lots of friends! In fact, I have all episodes ever made.
-
- /// 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 ///