diff options
Diffstat (limited to 'data/vim/patches/8.1.0619')
-rw-r--r-- | data/vim/patches/8.1.0619 | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/data/vim/patches/8.1.0619 b/data/vim/patches/8.1.0619 deleted file mode 100644 index e3a5293af..000000000 --- a/data/vim/patches/8.1.0619 +++ /dev/null @@ -1,272 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0619 -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.0619 -Problem: :echomsg and :echoerr do not handle List and Dict like :echo does. - (Daniel Hahler) -Solution: Be more tolerant about the expression result type. -Files: src/eval.c, src/proto/eval.pro, src/evalfunc.c, - src/proto/evalfunc.pro, runtime/doc/eval.txt, - src/testdir/test_messages.vim, src/message.c - - -*** ../vim-8.1.0618/src/eval.c 2018-12-21 16:04:16.312437516 +0100 ---- src/eval.c 2018-12-22 12:25:00.231184150 +0100 -*************** -*** 7163,7168 **** ---- 7163,7192 ---- - } - - /* -+ * Turn a typeval into a string. Similar to tv_get_string_buf() but uses -+ * string() on Dict, List, etc. -+ */ -+ char_u * -+ tv_stringify(typval_T *varp, char_u *buf) -+ { -+ if (varp->v_type == VAR_LIST -+ || varp->v_type == VAR_DICT -+ || varp->v_type == VAR_FUNC -+ || varp->v_type == VAR_PARTIAL -+ || varp->v_type == VAR_FLOAT) -+ { -+ typval_T tmp; -+ -+ f_string(varp, &tmp); -+ tv_get_string_buf(&tmp, buf); -+ clear_tv(varp); -+ *varp = tmp; -+ return tmp.vval.v_string; -+ } -+ return tv_get_string_buf(varp, buf); -+ } -+ -+ /* - * Find variable "name" in the list of variables. - * Return a pointer to it if found, NULL if not found. - * Careful: "a:0" variables don't have a name. -*************** -*** 8142,8148 **** - - if (!eap->skip) - { -! p = tv_get_string(&rettv); - len = (int)STRLEN(p); - if (ga_grow(&ga, len + 2) == FAIL) - { ---- 8166,8177 ---- - - if (!eap->skip) - { -! char_u buf[NUMBUFLEN]; -! -! if (eap->cmdidx == CMD_execute) -! p = tv_get_string_buf(&rettv, buf); -! else -! p = tv_stringify(&rettv, buf); - len = (int)STRLEN(p); - if (ga_grow(&ga, len + 2) == FAIL) - { -*** ../vim-8.1.0618/src/proto/eval.pro 2018-12-21 16:04:16.312437516 +0100 ---- src/proto/eval.pro 2018-12-22 12:17:39.702552883 +0100 -*************** -*** 89,94 **** ---- 89,95 ---- - char_u *tv_get_string_buf(typval_T *varp, char_u *buf); - char_u *tv_get_string_chk(typval_T *varp); - char_u *tv_get_string_buf_chk(typval_T *varp, char_u *buf); -+ char_u *tv_stringify(typval_T *varp, char_u *buf); - dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload); - dictitem_T *find_var_in_ht(hashtab_T *ht, int htname, char_u *varname, int no_autoload); - hashtab_T *find_var_ht(char_u *name, char_u **varname); -*** ../vim-8.1.0618/src/evalfunc.c 2018-12-21 16:04:16.316437487 +0100 ---- src/evalfunc.c 2018-12-22 12:18:56.357958445 +0100 -*************** -*** 396,402 **** - #endif - static void f_strgetchar(typval_T *argvars, typval_T *rettv); - static void f_stridx(typval_T *argvars, typval_T *rettv); -- static void f_string(typval_T *argvars, typval_T *rettv); - static void f_strlen(typval_T *argvars, typval_T *rettv); - static void f_strcharpart(typval_T *argvars, typval_T *rettv); - static void f_strpart(typval_T *argvars, typval_T *rettv); ---- 396,401 ---- -*************** -*** 12475,12481 **** - /* - * "string()" function - */ -! static void - f_string(typval_T *argvars, typval_T *rettv) - { - char_u *tofree; ---- 12474,12480 ---- - /* - * "string()" function - */ -! void - f_string(typval_T *argvars, typval_T *rettv) - { - char_u *tofree; -*** ../vim-8.1.0618/src/proto/evalfunc.pro 2018-05-17 13:52:33.000000000 +0200 ---- src/proto/evalfunc.pro 2018-12-22 12:19:00.705924858 +0100 -*************** -*** 9,14 **** ---- 9,15 ---- - void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv); - float_T vim_round(float_T f); - long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, typval_T *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit); -+ void f_string(typval_T *argvars, typval_T *rettv); - char_u *get_callback(typval_T *arg, partial_T **pp); - void free_callback(char_u *callback, partial_T *partial); - /* vim: set ft=c : */ -*** ../vim-8.1.0618/runtime/doc/eval.txt 2018-12-21 15:16:57.475579814 +0100 ---- runtime/doc/eval.txt 2018-12-22 13:13:03.694052571 +0100 -*************** -*** 9214,9220 **** - error with try/catch cannot be used (because it skips over - following code). - {expr} is used literally, not as a pattern. -! There is currently no way to revert this. - - test_null_channel() *test_null_channel()* - Return a Channel that is null. Only useful for testing. ---- 9233,9240 ---- - error with try/catch cannot be used (because it skips over - following code). - {expr} is used literally, not as a pattern. -! When the {expr} is the string "RESET" then the list of ignored -! errors is made empty. - - test_null_channel() *test_null_channel()* - Return a Channel that is null. Only useful for testing. -*************** -*** 10978,10985 **** - The parsing works slightly different from |:echo|, - more like |:execute|. All the expressions are first - evaluated and concatenated before echoing anything. -! The expressions must evaluate to a Number or String, a -! Dictionary or List causes an error. - Uses the highlighting set by the |:echohl| command. - Example: > - :echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see." ---- 11000,11007 ---- - The parsing works slightly different from |:echo|, - more like |:execute|. All the expressions are first - evaluated and concatenated before echoing anything. -! If expressions does not evaluate to a Number or -! String, string() is used to turn it into a string. - Uses the highlighting set by the |:echohl| command. - Example: > - :echomsg "It's a Zizzer Zazzer Zuzz, as you can plainly see." -*************** -*** 10990,10996 **** - message in the |message-history|. When used in a - script or function the line number will be added. - Spaces are placed between the arguments as with the -! :echo command. When used inside a try conditional, - the message is raised as an error exception instead - (see |try-echoerr|). - Example: > ---- 11012,11018 ---- - message in the |message-history|. When used in a - script or function the line number will be added. - Spaces are placed between the arguments as with the -! |:echomsg| command. When used inside a try conditional, - the message is raised as an error exception instead - (see |try-echoerr|). - Example: > -*** ../vim-8.1.0618/src/testdir/test_messages.vim 2018-12-02 14:55:04.904731741 +0100 ---- src/testdir/test_messages.vim 2018-12-22 13:16:02.344747032 +0100 -*************** -*** 1,4 **** -! " Tests for :messages - - function Test_messages() - let oldmore = &more ---- 1,4 ---- -! " Tests for :messages, :echomsg, :echoerr - - function Test_messages() - let oldmore = &more -*************** -*** 64,66 **** ---- 64,94 ---- - call feedkeys(":message \<C-A>\<C-B>\"\<CR>", 'tx') - call assert_equal('"message clear', @:) - endfunc -+ -+ func Test_echomsg() -+ call assert_equal("\nhello", execute(':echomsg "hello"')) -+ call assert_equal("\n", execute(':echomsg ""')) -+ call assert_equal("\n12345", execute(':echomsg 12345')) -+ call assert_equal("\n[]", execute(':echomsg []')) -+ call assert_equal("\n[1, 2, 3]", execute(':echomsg [1, 2, 3]')) -+ call assert_equal("\n{}", execute(':echomsg {}')) -+ call assert_equal("\n{'a': 1, 'b': 2}", execute(':echomsg {"a": 1, "b": 2}')) -+ if has('float') -+ call assert_equal("\n1.23", execute(':echomsg 1.23')) -+ endif -+ call assert_match("function('<lambda>\\d*')", execute(':echomsg {-> 1234}')) -+ endfunc -+ -+ func Test_echoerr() -+ call test_ignore_error('IgNoRe') -+ call assert_equal("\nIgNoRe hello", execute(':echoerr "IgNoRe hello"')) -+ call assert_equal("\n12345 IgNoRe", execute(':echoerr 12345 "IgNoRe"')) -+ call assert_equal("\n[1, 2, 'IgNoRe']", execute(':echoerr [1, 2, "IgNoRe"]')) -+ call assert_equal("\n{'IgNoRe': 2, 'a': 1}", execute(':echoerr {"a": 1, "IgNoRe": 2}')) -+ if has('float') -+ call assert_equal("\n1.23 IgNoRe", execute(':echoerr 1.23 "IgNoRe"')) -+ endif -+ call test_ignore_error('<lambda>') -+ call assert_match("function('<lambda>\\d*')", execute(':echoerr {-> 1234}')) -+ call test_ignore_error('RESET') -+ endfunc -*** ../vim-8.1.0618/src/message.c 2018-12-21 16:04:16.316437487 +0100 ---- src/message.c 2018-12-22 13:13:16.209961171 +0100 -*************** -*** 553,559 **** - if (ignore_error_list.ga_itemsize == 0) - ga_init2(&ignore_error_list, sizeof(char_u *), 1); - -! ga_add_string(&ignore_error_list, error); - } - - static int ---- 553,562 ---- - if (ignore_error_list.ga_itemsize == 0) - ga_init2(&ignore_error_list, sizeof(char_u *), 1); - -! if (STRCMP("RESET", error) == 0) -! ga_clear_strings(&ignore_error_list); -! else -! ga_add_string(&ignore_error_list, error); - } - - static int -*** ../vim-8.1.0618/src/version.c 2018-12-21 20:55:18.892739645 +0100 ---- src/version.c 2018-12-22 13:16:38.876479919 +0100 -*************** -*** 801,802 **** ---- 801,804 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 619, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail - on the way back to bed. - - /// 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 /// |