To: vim_dev@googlegroups.com Subject: Patch 8.2.3258 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.3258 Problem: Error messages have the wrong text. Solution: Adjust the error message. Files: src/errors.h, src/typval.c, src/testdir/test_vim9_builtin.vim *** ../vim-8.2.3257/src/errors.h 2021-07-29 20:37:45.652199179 +0200 --- src/errors.h 2021-07-31 19:00:45.714659514 +0200 *************** *** 628,644 **** EXTERN char e_string_or_list_required_for_argument_nr[] INIT(= N_("E1222: String or List required for argument %d")); EXTERN char e_string_or_dict_required_for_argument_nr[] ! INIT(= N_("E1223: String or List required for argument %d")); ! EXTERN char e_string_or_number_or_list_required_for_argument_nr[] ! INIT(= N_("E1224: String or List required for argument %d")); ! EXTERN char e_string_or_list_or_dict_required_for_argument_nr[] ! INIT(= N_("E1225: String or List required for argument %d")); EXTERN char e_list_or_blob_required_for_argument_nr[] ! INIT(= N_("E1226: String or List required for argument %d")); EXTERN char e_list_or_dict_required_for_argument_nr[] INIT(= N_("E1227: List or Dictionary required for argument %d")); ! EXTERN char e_list_or_dict_or_blob_required_for_argument_nr[] ! INIT(= N_("E1228: List or Dictionary or Blob required for argument %d")); EXTERN char e_expected_dictionary_for_using_key_str_but_got_str[] INIT(= N_("E1229: Expected dictionary for using key \"%s\", but got %s")); EXTERN char e_encryption_sodium_mlock_failed[] --- 628,644 ---- EXTERN char e_string_or_list_required_for_argument_nr[] INIT(= N_("E1222: String or List required for argument %d")); EXTERN char e_string_or_dict_required_for_argument_nr[] ! INIT(= N_("E1223: String or Dictionary required for argument %d")); ! EXTERN char e_string_number_or_list_required_for_argument_nr[] ! INIT(= N_("E1224: String, Number or List required for argument %d")); ! EXTERN char e_string_list_or_dict_required_for_argument_nr[] ! INIT(= N_("E1225: String, List or Dictionary required for argument %d")); EXTERN char e_list_or_blob_required_for_argument_nr[] ! INIT(= N_("E1226: List or Blob required for argument %d")); EXTERN char e_list_or_dict_required_for_argument_nr[] INIT(= N_("E1227: List or Dictionary required for argument %d")); ! EXTERN char e_list_dict_or_blob_required_for_argument_nr[] ! INIT(= N_("E1228: List, Dictionary or Blob required for argument %d")); EXTERN char e_expected_dictionary_for_using_key_str_but_got_str[] INIT(= N_("E1229: Expected dictionary for using key \"%s\", but got %s")); EXTERN char e_encryption_sodium_mlock_failed[] *** ../vim-8.2.3257/src/typval.c 2021-07-28 11:51:44.321061719 +0200 --- src/typval.c 2021-07-31 19:00:12.302764339 +0200 *************** *** 718,724 **** && args[idx].v_type != VAR_LIST) { if (idx >= 0) ! semsg(_(e_string_or_number_or_list_required_for_argument_nr), idx + 1); else emsg(_(e_stringreq)); return FAIL; --- 718,724 ---- && args[idx].v_type != VAR_LIST) { if (idx >= 0) ! semsg(_(e_string_number_or_list_required_for_argument_nr), idx + 1); else emsg(_(e_stringreq)); return FAIL; *************** *** 749,755 **** && args[idx].v_type != VAR_DICT) { if (idx >= 0) ! semsg(_(e_string_or_list_or_dict_required_for_argument_nr), idx + 1); else emsg(_(e_stringreq)); return FAIL; --- 749,755 ---- && args[idx].v_type != VAR_DICT) { if (idx >= 0) ! semsg(_(e_string_list_or_dict_required_for_argument_nr), idx + 1); else emsg(_(e_stringreq)); return FAIL; *************** *** 804,810 **** && args[idx].v_type != VAR_BLOB) { if (idx >= 0) ! semsg(_(e_list_or_dict_or_blob_required_for_argument_nr), idx + 1); else emsg(_(e_listreq)); return FAIL; --- 804,810 ---- && args[idx].v_type != VAR_BLOB) { if (idx >= 0) ! semsg(_(e_list_dict_or_blob_required_for_argument_nr), idx + 1); else emsg(_(e_listreq)); return FAIL; *** ../vim-8.2.3257/src/testdir/test_vim9_builtin.vim 2021-07-28 22:44:05.117584182 +0200 --- src/testdir/test_vim9_builtin.vim 2021-07-31 19:07:43.625363138 +0200 *************** *** 76,82 **** enddef def Test_add() ! CheckDefAndScriptFailure2(['add({}, 1)'], 'E1013: Argument 1: type mismatch, expected list but got dict', 'E1226: String or List required for argument 1') CheckDefFailure(['add([1], "a")'], 'E1012: Type mismatch; expected number but got string') enddef --- 76,82 ---- enddef def Test_add() ! CheckDefAndScriptFailure2(['add({}, 1)'], 'E1013: Argument 1: type mismatch, expected list but got dict', 'E1226: List or Blob required for argument 1') CheckDefFailure(['add([1], "a")'], 'E1012: Type mismatch; expected number but got string') enddef *************** *** 198,204 **** assert_equal(['zero'], getbufline(bnum, 1)) CheckDefAndScriptFailure2(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1220: String or Number required for argument 1') CheckDefAndScriptFailure2(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list', 'E1220: String or Number required for argument 2') ! CheckDefAndScriptFailure2(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict', 'E1224: String or List required for argument 3') bnum->bufwinid()->win_gotoid() bwipe! enddef --- 198,204 ---- assert_equal(['zero'], getbufline(bnum, 1)) CheckDefAndScriptFailure2(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1220: String or Number required for argument 1') CheckDefAndScriptFailure2(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list', 'E1220: String or Number required for argument 2') ! CheckDefAndScriptFailure2(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 3') bnum->bufwinid()->win_gotoid() bwipe! enddef *************** *** 628,634 **** enddef def Test_complete_add() ! CheckDefAndScriptFailure2(['complete_add([])'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1223: String or List required for argument 1') enddef def Test_complete_info() --- 628,634 ---- enddef def Test_complete_add() ! CheckDefAndScriptFailure2(['complete_add([])'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1223: String or Dictionary required for argument 1') enddef def Test_complete_info() *************** *** 673,679 **** def Test_count() count('ABC ABC ABC', 'b', true)->assert_equal(3) count('ABC ABC ABC', 'b', false)->assert_equal(0) ! CheckDefAndScriptFailure2(['count(10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1225: String or List required for argument 1') CheckDefAndScriptFailure2(['count("a", [1], 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') CheckDefAndScriptFailure2(['count("a", [1], 0, "b")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') count([1, 2, 2, 3], 2)->assert_equal(2) --- 673,679 ---- def Test_count() count('ABC ABC ABC', 'b', true)->assert_equal(3) count('ABC ABC ABC', 'b', false)->assert_equal(0) ! CheckDefAndScriptFailure2(['count(10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1225: String, List or Dictionary required for argument 1') CheckDefAndScriptFailure2(['count("a", [1], 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3') CheckDefAndScriptFailure2(['count("a", [1], 0, "b")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') count([1, 2, 2, 3], 2)->assert_equal(2) *************** *** 703,709 **** cursor('2', 1) END CheckDefExecAndScriptFailure(lines, 'E1209:') ! CheckDefAndScriptFailure2(['cursor(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['cursor(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['cursor(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef --- 703,709 ---- cursor('2', 1) END CheckDefExecAndScriptFailure(lines, 'E1209:') ! CheckDefAndScriptFailure2(['cursor(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['cursor(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['cursor(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef *************** *** 1072,1078 **** enddef def Test_filter() ! CheckDefAndScriptFailure2(['filter(1.1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got float', 'E1228: List or Dictionary or Blob required for argument 1') assert_equal([], filter([1, 2, 3], '0')) assert_equal([1, 2, 3], filter([1, 2, 3], '1')) assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) --- 1072,1078 ---- enddef def Test_filter() ! CheckDefAndScriptFailure2(['filter(1.1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got float', 'E1228: List, Dictionary or Blob required for argument 1') assert_equal([], filter([1, 2, 3], '0')) assert_equal([1, 2, 3], filter([1, 2, 3], '1')) assert_equal({b: 20}, filter({a: 10, b: 20}, 'v:val == 20')) *************** *** 1556,1562 **** def Test_index() index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) ! CheckDefAndScriptFailure2(['index("a", "a")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: String or List required for argument 1') CheckDefFailure(['index(["1"], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') CheckDefAndScriptFailure2(['index(0z10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['index([1], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') --- 1556,1562 ---- def Test_index() index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) ! CheckDefAndScriptFailure2(['index("a", "a")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: List or Blob required for argument 1') CheckDefFailure(['index(["1"], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number') CheckDefAndScriptFailure2(['index(0z10, "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['index([1], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') *************** *** 1629,1635 **** assert_equal(['a', 'b', 'c'], insert(['b', 'c'], 'a')) assert_equal(0z1234, insert(0z34, 0x12)) ! CheckDefAndScriptFailure2(['insert("a", 1)'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: String or List required for argument 1') CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string') CheckDefAndScriptFailure2(['insert([2, 3], 1, "x")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef --- 1629,1635 ---- assert_equal(['a', 'b', 'c'], insert(['b', 'c'], 'a')) assert_equal(0z1234, insert(0z34, 0x12)) ! CheckDefAndScriptFailure2(['insert("a", 1)'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: List or Blob required for argument 1') CheckDefFailure(['insert([2, 3], "a")'], 'E1013: Argument 2: type mismatch, expected number but got string') CheckDefAndScriptFailure2(['insert([2, 3], 1, "x")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef *************** *** 1821,1828 **** enddef def Test_map() ! CheckDefAndScriptFailure2(['map("x", "1")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List or Dictionary or Blob required for argument 1') ! CheckDefAndScriptFailure2(['map(1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1228: List or Dictionary or Blob required for argument 1') enddef def Test_map_failure() --- 1821,1828 ---- enddef def Test_map() ! CheckDefAndScriptFailure2(['map("x", "1")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List, Dictionary or Blob required for argument 1') ! CheckDefAndScriptFailure2(['map(1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1228: List, Dictionary or Blob required for argument 1') enddef def Test_map_failure() *************** *** 1935,1942 **** enddef def Test_mapnew() ! CheckDefAndScriptFailure2(['mapnew("x", "1")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List or Dictionary or Blob required for argument 1') ! CheckDefAndScriptFailure2(['mapnew(1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1228: List or Dictionary or Blob required for argument 1') enddef def Test_mapset() --- 1935,1942 ---- enddef def Test_mapnew() ! CheckDefAndScriptFailure2(['mapnew("x", "1")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List, Dictionary or Blob required for argument 1') ! CheckDefAndScriptFailure2(['mapnew(1, "1")'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1228: List, Dictionary or Blob required for argument 1') enddef def Test_mapset() *************** *** 2148,2154 **** enddef def Test_popup_atcursor() ! CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') # Pass variable of type 'any' to popup_atcursor() --- 2148,2154 ---- enddef def Test_popup_atcursor() ! CheckDefAndScriptFailure2(['popup_atcursor({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['popup_atcursor("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') # Pass variable of type 'any' to popup_atcursor() *************** *** 2159,2165 **** enddef def Test_popup_beval() ! CheckDefAndScriptFailure2(['popup_beval({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef --- 2159,2165 ---- enddef def Test_popup_beval() ! CheckDefAndScriptFailure2(['popup_beval({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['popup_beval("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef *************** *** 2181,2187 **** enddef def Test_popup_dialog() ! CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef --- 2181,2187 ---- enddef def Test_popup_dialog() ! CheckDefAndScriptFailure2(['popup_dialog({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['popup_dialog("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef *************** *** 2216,2222 **** enddef def Test_popup_menu() ! CheckDefAndScriptFailure2(['popup_menu({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['popup_menu("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef --- 2216,2222 ---- enddef def Test_popup_menu() ! CheckDefAndScriptFailure2(['popup_menu({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['popup_menu("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef *************** *** 2226,2232 **** enddef def Test_popup_notification() ! CheckDefAndScriptFailure2(['popup_notification({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['popup_notification("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef --- 2226,2232 ---- enddef def Test_popup_notification() ! CheckDefAndScriptFailure2(['popup_notification({"a": 10}, {})'], 'E1013: Argument 1: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['popup_notification("a", [1, 2])'], 'E1013: Argument 2: type mismatch, expected dict but got list', 'E1206: Dictionary required for argument 2') enddef *************** *** 2517,2523 **** enddef def Test_remove() ! CheckDefAndScriptFailure2(['remove("a", 1)'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List or Dictionary or Blob required for argument 1') CheckDefAndScriptFailure2(['remove([], "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['remove([], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') CheckDefAndScriptFailure2(['remove({}, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2') --- 2517,2523 ---- enddef def Test_remove() ! CheckDefAndScriptFailure2(['remove("a", 1)'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1228: List, Dictionary or Blob required for argument 1') CheckDefAndScriptFailure2(['remove([], "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['remove([], 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') CheckDefAndScriptFailure2(['remove({}, 1.1)'], 'E1013: Argument 2: type mismatch, expected string but got float', 'E1220: String or Number required for argument 2') *************** *** 2556,2563 **** enddef def Test_repeat() ! CheckDefAndScriptFailure2(['repeat(1.1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1224: String or List required for argument 1') ! CheckDefAndScriptFailure2(['repeat({a: 10}, 2)'], 'E1013: Argument 1: type mismatch, expected string but got dict<', 'E1224: String or List required for argument 1') assert_equal('aaa', repeat('a', 3)) assert_equal('111', repeat(1, 3)) assert_equal([1, 1, 1], repeat([1], 3)) --- 2556,2563 ---- enddef def Test_repeat() ! CheckDefAndScriptFailure2(['repeat(1.1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got float', 'E1224: String, Number or List required for argument 1') ! CheckDefAndScriptFailure2(['repeat({a: 10}, 2)'], 'E1013: Argument 1: type mismatch, expected string but got dict<', 'E1224: String, Number or List required for argument 1') assert_equal('aaa', repeat('a', 3)) assert_equal('111', repeat(1, 3)) assert_equal([1, 1, 1], repeat([1], 3)) *************** *** 2569,2576 **** enddef def Test_reverse() ! CheckDefAndScriptFailure2(['reverse(10)'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1226: String or List required for argument 1') ! CheckDefAndScriptFailure2(['reverse("abc")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: String or List required for argument 1') enddef def Test_reverse_return_type() --- 2569,2576 ---- enddef def Test_reverse() ! CheckDefAndScriptFailure2(['reverse(10)'], 'E1013: Argument 1: type mismatch, expected list but got number', 'E1226: List or Blob required for argument 1') ! CheckDefAndScriptFailure2(['reverse("abc")'], 'E1013: Argument 1: type mismatch, expected list but got string', 'E1226: List or Blob required for argument 1') enddef def Test_reverse_return_type() *************** *** 2830,2836 **** assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) CheckDefAndScriptFailure2(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1220: String or Number required for argument 1') CheckDefAndScriptFailure2(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list', 'E1220: String or Number required for argument 2') ! CheckDefAndScriptFailure2(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict', 'E1224: String or List required for argument 3') bnum->bufwinid()->win_gotoid() bw! enddef --- 2830,2836 ---- assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) CheckDefAndScriptFailure2(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list', 'E1220: String or Number required for argument 1') CheckDefAndScriptFailure2(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list', 'E1220: String or Number required for argument 2') ! CheckDefAndScriptFailure2(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 3') bnum->bufwinid()->win_gotoid() bw! enddef *************** *** 2859,2865 **** enddef def Test_setcursorcharpos() ! CheckDefAndScriptFailure2(['setcursorcharpos(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String or List required for argument 1') CheckDefAndScriptFailure2(['setcursorcharpos(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['setcursorcharpos(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef --- 2859,2865 ---- enddef def Test_setcursorcharpos() ! CheckDefAndScriptFailure2(['setcursorcharpos(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected number but got blob', 'E1224: String, Number or List required for argument 1') CheckDefAndScriptFailure2(['setcursorcharpos(1, "2")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2') CheckDefAndScriptFailure2(['setcursorcharpos(1, 2, "3")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3') enddef *************** *** 3289,3301 **** def Test_system() CheckDefAndScriptFailure2(['system(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') ! CheckDefAndScriptFailure2(['system("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict', 'E1224: String or List required for argument 2') assert_equal("123\n", system('echo 123')) enddef def Test_systemlist() CheckDefAndScriptFailure2(['systemlist(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') ! CheckDefAndScriptFailure2(['systemlist("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict', 'E1224: String or List required for argument 2') if has('win32') call assert_equal(["123\r"], systemlist('echo 123')) else --- 3289,3301 ---- def Test_system() CheckDefAndScriptFailure2(['system(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') ! CheckDefAndScriptFailure2(['system("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 2') assert_equal("123\n", system('echo 123')) enddef def Test_systemlist() CheckDefAndScriptFailure2(['systemlist(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') ! CheckDefAndScriptFailure2(['systemlist("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict', 'E1224: String, Number or List required for argument 2') if has('win32') call assert_equal(["123\r"], systemlist('echo 123')) else *** ../vim-8.2.3257/src/version.c 2021-07-31 18:33:53.180698143 +0200 --- src/version.c 2021-07-31 18:58:15.391133079 +0200 *************** *** 757,758 **** --- 757,760 ---- { /* Add new patch number below this line */ + /**/ + 3258, /**/ -- GALAHAD hurries to the door and pushes through it. As he leaves the room we CUT TO the reverse to show that he is now in a room full of bathing and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile enchantingly at him as he tries to keep walking without being diverted by the lovely sights assaulting his eyeballs. "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/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///