summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0819
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0819')
-rw-r--r--data/vim/patches/8.1.0819223
1 files changed, 223 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0819 b/data/vim/patches/8.1.0819
new file mode 100644
index 000000000..63a8af549
--- /dev/null
+++ b/data/vim/patches/8.1.0819
@@ -0,0 +1,223 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0819
+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.0819
+Problem: A failed assert with a long string is hard to read.
+Solution: Shorten the assert message.
+Files: src/eval.c, src/testdir/test_assert.vim
+
+
+*** ../vim-8.1.0818/src/eval.c 2019-01-24 15:04:44.666887862 +0100
+--- src/eval.c 2019-01-25 20:41:03.215252969 +0100
+***************
+*** 9495,9508 ****
+ }
+
+ /*
+ * Append "str" to "gap", escaping unprintable characters.
+ * Changes NL to \n, CR to \r, etc.
+ */
+ static void
+! ga_concat_esc(garray_T *gap, char_u *str)
+ {
+ char_u *p;
+ char_u buf[NUMBUFLEN];
+
+ if (str == NULL)
+ {
+--- 9495,9548 ----
+ }
+
+ /*
++ * Append "p[clen]" to "gap", escaping unprintable characters.
++ * Changes NL to \n, CR to \r, etc.
++ */
++ static void
++ ga_concat_esc(garray_T *gap, char_u *p, int clen)
++ {
++ char_u buf[NUMBUFLEN];
++
++ if (clen > 1)
++ {
++ mch_memmove(buf, p, clen);
++ buf[clen] = NUL;
++ ga_concat(gap, buf);
++ }
++ else switch (*p)
++ {
++ case BS: ga_concat(gap, (char_u *)"\\b"); break;
++ case ESC: ga_concat(gap, (char_u *)"\\e"); break;
++ case FF: ga_concat(gap, (char_u *)"\\f"); break;
++ case NL: ga_concat(gap, (char_u *)"\\n"); break;
++ case TAB: ga_concat(gap, (char_u *)"\\t"); break;
++ case CAR: ga_concat(gap, (char_u *)"\\r"); break;
++ case '\\': ga_concat(gap, (char_u *)"\\\\"); break;
++ default:
++ if (*p < ' ')
++ {
++ vim_snprintf((char *)buf, NUMBUFLEN, "\\x%02x", *p);
++ ga_concat(gap, buf);
++ }
++ else
++ ga_append(gap, *p);
++ break;
++ }
++ }
++
++ /*
+ * Append "str" to "gap", escaping unprintable characters.
+ * Changes NL to \n, CR to \r, etc.
+ */
+ static void
+! ga_concat_shorten_esc(garray_T *gap, char_u *str)
+ {
+ char_u *p;
++ char_u *s;
++ int c;
++ int clen;
+ char_u buf[NUMBUFLEN];
++ int same_len;
+
+ if (str == NULL)
+ {
+***************
+*** 9511,9535 ****
+ }
+
+ for (p = str; *p != NUL; ++p)
+! switch (*p)
+ {
+! case BS: ga_concat(gap, (char_u *)"\\b"); break;
+! case ESC: ga_concat(gap, (char_u *)"\\e"); break;
+! case FF: ga_concat(gap, (char_u *)"\\f"); break;
+! case NL: ga_concat(gap, (char_u *)"\\n"); break;
+! case TAB: ga_concat(gap, (char_u *)"\\t"); break;
+! case CAR: ga_concat(gap, (char_u *)"\\r"); break;
+! case '\\': ga_concat(gap, (char_u *)"\\\\"); break;
+! default:
+! if (*p < ' ')
+! {
+! vim_snprintf((char *)buf, NUMBUFLEN, "\\x%02x", *p);
+! ga_concat(gap, buf);
+! }
+! else
+! ga_append(gap, *p);
+! break;
+ }
+ }
+
+ /*
+--- 9551,9579 ----
+ }
+
+ for (p = str; *p != NUL; ++p)
+! {
+! same_len = 1;
+! s = p;
+! c = mb_ptr2char_adv(&s);
+! clen = s - p;
+! while (*s != NUL && c == mb_ptr2char(s))
+ {
+! ++same_len;
+! s += clen;
+ }
++ if (same_len > 20)
++ {
++ ga_concat(gap, (char_u *)"\\[");
++ ga_concat_esc(gap, p, clen);
++ ga_concat(gap, (char_u *)" occurs ");
++ vim_snprintf((char *)buf, NUMBUFLEN, "%d", same_len);
++ ga_concat(gap, buf);
++ ga_concat(gap, (char_u *)" times]");
++ p = s - 1;
++ }
++ else
++ ga_concat_esc(gap, p, clen);
++ }
+ }
+
+ /*
+***************
+*** 9562,9572 ****
+ ga_concat(gap, (char_u *)"Expected ");
+ if (exp_str == NULL)
+ {
+! ga_concat_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0));
+ vim_free(tofree);
+ }
+ else
+! ga_concat_esc(gap, exp_str);
+ if (atype != ASSERT_NOTEQUAL)
+ {
+ if (atype == ASSERT_MATCH)
+--- 9606,9616 ----
+ ga_concat(gap, (char_u *)"Expected ");
+ if (exp_str == NULL)
+ {
+! ga_concat_shorten_esc(gap, tv2string(exp_tv, &tofree, numbuf, 0));
+ vim_free(tofree);
+ }
+ else
+! ga_concat_shorten_esc(gap, exp_str);
+ if (atype != ASSERT_NOTEQUAL)
+ {
+ if (atype == ASSERT_MATCH)
+***************
+*** 9575,9581 ****
+ ga_concat(gap, (char_u *)" does match ");
+ else
+ ga_concat(gap, (char_u *)" but got ");
+! ga_concat_esc(gap, tv2string(got_tv, &tofree, numbuf, 0));
+ vim_free(tofree);
+ }
+ }
+--- 9619,9625 ----
+ ga_concat(gap, (char_u *)" does match ");
+ else
+ ga_concat(gap, (char_u *)" but got ");
+! ga_concat_shorten_esc(gap, tv2string(got_tv, &tofree, numbuf, 0));
+ vim_free(tofree);
+ }
+ }
+*** ../vim-8.1.0818/src/testdir/test_assert.vim 2018-10-07 20:14:53.091279680 +0200
+--- src/testdir/test_assert.vim 2019-01-25 20:47:28.113426333 +0100
+***************
+*** 31,36 ****
+--- 31,40 ----
+ call assert_equal(1, assert_equal('bar', s))
+ call assert_match("Expected 'bar' but got 'foo'", v:errors[0])
+ call remove(v:errors, 0)
++
++ call assert_equal('XxxxxxxxxxxxxxxxxxxxxxX', 'XyyyyyyyyyyyyyyyyyyyyyyyyyX')
++ call assert_match("Expected 'X\\\\\\[x occurs 21 times]X' but got 'X\\\\\\[y occurs 25 times]X'", v:errors[0])
++ call remove(v:errors, 0)
+ endfunc
+
+ func Test_assert_equalfile()
+*** ../vim-8.1.0818/src/version.c 2019-01-24 23:11:44.635650160 +0100
+--- src/version.c 2019-01-25 20:33:02.042881289 +0100
+***************
+*** 789,790 ****
+--- 789,792 ----
+ { /* Add new patch number below this line */
++ /**/
++ 819,
+ /**/
+
+--
+ LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
+ hacks him to the floor. Blood. Swashbuckling music (perhaps).
+ LAUNCELOT races through into the castle screaming.
+SECOND SENTRY: Hey!
+ "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 ///