summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1338
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1338')
-rw-r--r--data/vim/patches/8.1.1338111
1 files changed, 111 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1338 b/data/vim/patches/8.1.1338
new file mode 100644
index 000000000..fd8309038
--- /dev/null
+++ b/data/vim/patches/8.1.1338
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1338
+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.1338
+Problem: Hang when concealing the '>' shown for a wide char that doesn't
+ fit in the last cell.
+Solution: Put back the pointer when the '>' is not going to be displayed.
+ (closes #4377)
+Files: src/screen.c
+
+
+*** ../vim-8.1.1337/src/screen.c 2019-05-14 21:20:32.597441034 +0200
+--- src/screen.c 2019-05-17 12:24:36.009066604 +0200
+***************
+*** 3176,3182 ****
+ int vcol_off = 0; /* offset for concealed characters */
+ int did_wcol = FALSE;
+ int match_conc = 0; /* cchar for match functions */
+- int has_match_conc = 0; /* match wants to conceal */
+ int old_boguscols = 0;
+ # define VCOL_HLC (vcol - vcol_off)
+ # define FIX_FOR_BOGUSCOLS \
+--- 3176,3181 ----
+***************
+*** 3747,3753 ****
+ for (;;)
+ {
+ #ifdef FEAT_CONCEAL
+! has_match_conc = 0;
+ #endif
+ /* Skip this quickly when working on the text. */
+ if (draw_state != WL_LINE)
+--- 3746,3753 ----
+ for (;;)
+ {
+ #ifdef FEAT_CONCEAL
+! int has_match_conc = 0; // match wants to conceal
+! int did_decrement_ptr = FALSE;
+ #endif
+ /* Skip this quickly when working on the text. */
+ if (draw_state != WL_LINE)
+***************
+*** 4596,4604 ****
+ mb_utf8 = FALSE;
+ mb_l = 1;
+ multi_attr = HL_ATTR(HLF_AT);
+! /* Put pointer back so that the character will be
+! * displayed at the start of the next line. */
+ --ptr;
+ }
+ else if (*ptr != NUL)
+ ptr += mb_l - 1;
+--- 4596,4607 ----
+ mb_utf8 = FALSE;
+ mb_l = 1;
+ multi_attr = HL_ATTR(HLF_AT);
+! // Put pointer back so that the character will be
+! // displayed at the start of the next line.
+ --ptr;
++ #ifdef FEAT_CONCEAL
++ did_decrement_ptr = TRUE;
++ #endif
+ }
+ else if (*ptr != NUL)
+ ptr += mb_l - 1;
+***************
+*** 5261,5267 ****
+ prev_syntax_id = 0;
+ is_concealing = FALSE;
+ }
+! #endif /* FEAT_CONCEAL */
+ }
+
+ #ifdef FEAT_CONCEAL
+--- 5264,5275 ----
+ prev_syntax_id = 0;
+ is_concealing = FALSE;
+ }
+!
+! if (n_skip > 0 && did_decrement_ptr)
+! // not showing the '>', put pointer back to avoid getting stuck
+! ++ptr;
+!
+! #endif // FEAT_CONCEAL
+ }
+
+ #ifdef FEAT_CONCEAL
+*** ../vim-8.1.1337/src/version.c 2019-05-17 11:08:52.877906342 +0200
+--- src/version.c 2019-05-17 12:30:42.227009618 +0200
+***************
+*** 769,770 ****
+--- 769,772 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1338,
+ /**/
+
+--
+Never under any circumstances take a sleeping pill
+and a laxative on the same night.
+
+ /// 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 ///