Skip to content

Commit 820d552

Browse files
yegappanbrammool
authored andcommitted
patch 8.2.3446: not enough tests for empty string arguments
Problem: Not enough tests for empty string arguments. Solution: Add tests, fix type check. (Yegappan Lakshmanan, closes #8881)
1 parent 542ffe1 commit 820d552

File tree

6 files changed

+66
-17
lines changed

6 files changed

+66
-17
lines changed

runtime/doc/sign.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,7 @@ sign_jump({id}, {group}, {buf})
520520
{buf} and position the cursor at sign {id} in group {group}.
521521
This is similar to the |:sign-jump| command.
522522

523+
If {group} is an empty string, then the global group is used.
523524
For the use of {buf}, see |bufname()|.
524525

525526
Returns the line number of the sign. Returns -1 if the

runtime/doc/textprop.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ prop_add({lnum}, {col}, {props})
160160

161161
Can also be used as a |method|: >
162162
GetLnum()->prop_add(col, props)
163-
163+
<
164164
*prop_add_list()*
165165
prop_add_list({props}, [[{lnum}, {col}, {end-lnum}, {end-col}], ...])
166166
Similar to prop_add(), but attaches a text property at

src/sign.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2282,11 +2282,7 @@ f_sign_getdefined(typval_T *argvars, typval_T *rettv)
22822282
return;
22832283

22842284
if (argvars[0].v_type != VAR_UNKNOWN)
2285-
{
2286-
if (in_vim9script() && check_for_string_arg(argvars, 0) == FAIL)
2287-
return;
22882285
name = tv_get_string(&argvars[0]);
2289-
}
22902286

22912287
sign_getlist(name, rettv->vval.v_list);
22922288
}

src/testdir/test_blob.vim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,10 +663,11 @@ func Test_list2blob()
663663
\ [[0], 0z00],
664664
\ [[], 0z],
665665
\ [[0, 0, 0, 0], 0z00000000],
666+
\ [[255, 255], 0zFFFF],
666667
\ [[170, 187, 204, 221], 0zAABB.CCDD],
667668
\ ]
668669
for t in tests
669-
call assert_equal(t[0]->list2blob(), t[1])
670+
call assert_equal(t[1], t[0]->list2blob())
670671
endfor
671672
call assert_fails('let b = list2blob([1, []])', 'E745:')
672673
call assert_fails('let b = list2blob([-1])', 'E1239:')

src/testdir/test_vim9_builtin.vim

Lines changed: 60 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -380,12 +380,14 @@ enddef
380380
def Test_byte2line()
381381
CheckDefAndScriptFailure2(['byte2line("1")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1')
382382
CheckDefAndScriptFailure2(['byte2line([])'], 'E1013: Argument 1: type mismatch, expected number but got list<unknown>', 'E1210: Number required for argument 1')
383-
assert_equal(-1, byte2line(0))
383+
byte2line(0)->assert_equal(-1)
384384
enddef
385385

386386
def Test_byteidx()
387387
CheckDefAndScriptFailure2(['byteidx(1, 2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
388388
CheckDefAndScriptFailure2(['byteidx("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
389+
byteidx('', 0)->assert_equal(0)
390+
byteidx('', 1)->assert_equal(-1)
389391
enddef
390392

391393
def Test_byteidxcomp()
@@ -600,6 +602,8 @@ def Test_charidx()
600602
CheckDefAndScriptFailure2(['charidx(0z10, 1)'], 'E1013: Argument 1: type mismatch, expected string but got blob', 'E1174: String required for argument 1')
601603
CheckDefAndScriptFailure2(['charidx("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
602604
CheckDefAndScriptFailure2(['charidx("a", 1, "")'], 'E1013: Argument 3: type mismatch, expected bool but got string', 'E1212: Bool required for argument 3')
605+
charidx('', 0)->assert_equal(-1)
606+
charidx('', 1)->assert_equal(-1)
603607
enddef
604608

605609
def Test_chdir()
@@ -896,6 +900,7 @@ def Test_expand()
896900
CheckDefAndScriptFailure2(['expand(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
897901
CheckDefAndScriptFailure2(['expand("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2')
898902
CheckDefAndScriptFailure2(['expand("a", true, 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3')
903+
expand('')->assert_equal('')
899904
enddef
900905

901906
def Test_expandcmd()
@@ -1275,6 +1280,7 @@ def Test_fullcommand()
12751280
assert_equal('srewind', fullcommand('sre'))
12761281
assert_equal('scriptnames', fullcommand('scr'))
12771282
assert_equal('', fullcommand('scg'))
1283+
fullcommand('')->assert_equal('')
12781284
enddef
12791285

12801286
def Test_funcref()
@@ -1867,11 +1873,13 @@ enddef
18671873
def Test_js_decode()
18681874
CheckDefAndScriptFailure2(['js_decode(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
18691875
assert_equal([1, 2], js_decode('[1,2]'))
1876+
js_decode('')->assert_equal(v:none)
18701877
enddef
18711878

18721879
def Test_json_decode()
18731880
CheckDefAndScriptFailure2(['json_decode(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1174: String required for argument 1')
18741881
assert_equal(1.0, json_decode('1.0'))
1882+
json_decode('')->assert_equal(v:none)
18751883
enddef
18761884

18771885
def Test_keys()
@@ -2158,12 +2166,14 @@ def Test_matchfuzzy()
21582166
CheckDefAndScriptFailure2(['matchfuzzy({}, "p")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1')
21592167
CheckDefAndScriptFailure2(['matchfuzzy([], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
21602168
CheckDefAndScriptFailure2(['matchfuzzy([], "a", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3')
2169+
matchfuzzy(['abc', 'xyz'], '')->assert_equal([])
21612170
enddef
21622171

21632172
def Test_matchfuzzypos()
21642173
CheckDefAndScriptFailure2(['matchfuzzypos({}, "p")'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<unknown>', 'E1211: List required for argument 1')
21652174
CheckDefAndScriptFailure2(['matchfuzzypos([], 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
21662175
CheckDefAndScriptFailure2(['matchfuzzypos([], "a", [])'], 'E1013: Argument 3: type mismatch, expected dict<any> but got list<unknown>', 'E1206: Dictionary required for argument 3')
2176+
matchfuzzypos(['abc', 'xyz'], '')->assert_equal([[], [], []])
21672177
enddef
21682178

21692179
def Test_matchlist()
@@ -2342,6 +2352,9 @@ enddef
23422352
def Test_popup_filter_menu()
23432353
CheckDefAndScriptFailure2(['popup_filter_menu("x", "")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1')
23442354
CheckDefAndScriptFailure2(['popup_filter_menu(1, 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
2355+
var id: number = popup_menu(["one", "two", "three"], {})
2356+
popup_filter_menu(id, '')
2357+
popup_close(id)
23452358
enddef
23462359

23472360
def Test_popup_filter_yesno()
@@ -2466,6 +2479,7 @@ def Test_prop_find()
24662479
CheckDefAndScriptFailure2(['prop_find([1, 2])'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1')
24672480
CheckDefAndScriptFailure2(['prop_find([1, 2], "k")'], 'E1013: Argument 1: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 1')
24682481
CheckDefAndScriptFailure2(['prop_find({"a": 10}, ["a"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2')
2482+
assert_fails("prop_find({}, '')", 'E474:')
24692483
enddef
24702484

24712485
def Test_prop_list()
@@ -2482,23 +2496,27 @@ enddef
24822496
def Test_prop_type_add()
24832497
CheckDefAndScriptFailure2(['prop_type_add({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
24842498
CheckDefAndScriptFailure2(['prop_type_add("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2')
2499+
assert_fails("prop_type_add('', {highlight: 'Search'})", 'E474:')
24852500
enddef
24862501

24872502
def Test_prop_type_change()
24882503
CheckDefAndScriptFailure2(['prop_type_change({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
24892504
CheckDefAndScriptFailure2(['prop_type_change("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2')
2505+
assert_fails("prop_type_change('', {highlight: 'Search'})", 'E474:')
24902506
enddef
24912507

24922508
def Test_prop_type_delete()
24932509
CheckDefAndScriptFailure2(['prop_type_delete({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
24942510
CheckDefAndScriptFailure2(['prop_type_delete({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
24952511
CheckDefAndScriptFailure2(['prop_type_delete("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2')
2512+
assert_fails("prop_type_delete('')", 'E474:')
24962513
enddef
24972514

24982515
def Test_prop_type_get()
24992516
CheckDefAndScriptFailure2(['prop_type_get({"a": 10})'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
25002517
CheckDefAndScriptFailure2(['prop_type_get({"a": 10}, "b")'], 'E1013: Argument 1: type mismatch, expected string but got dict<number>', 'E1174: String required for argument 1')
25012518
CheckDefAndScriptFailure2(['prop_type_get("a", "b")'], 'E1013: Argument 2: type mismatch, expected dict<any> but got string', 'E1206: Dictionary required for argument 2')
2519+
assert_fails("prop_type_get('')", 'E474:')
25022520
enddef
25032521

25042522
def Test_prop_type_list()
@@ -3153,6 +3171,7 @@ enddef
31533171
def Test_sign_getdefined()
31543172
CheckDefAndScriptFailure2(['sign_getdefined(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1')
31553173
CheckDefAndScriptFailure2(['sign_getdefined(2)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3174+
sign_getdefined('')->assert_equal([])
31563175
enddef
31573176

31583177
def Test_sign_getplaced()
@@ -3173,6 +3192,7 @@ def Test_sign_place()
31733192
CheckDefAndScriptFailure2(['sign_place(1, "b", 3, "d")'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3')
31743193
CheckDefAndScriptFailure2(['sign_place(1, "b", "c", 1.1)'], 'E1013: Argument 4: type mismatch, expected string but got float', 'E1220: String or Number required for argument 4')
31753194
CheckDefAndScriptFailure2(['sign_place(1, "b", "c", "d", [1])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 5')
3195+
assert_fails("sign_place(0, '', '', '')", 'E155:')
31763196
enddef
31773197

31783198
def Test_sign_placelist()
@@ -3303,12 +3323,13 @@ def Test_state()
33033323
assert_equal('', state('a'))
33043324
enddef
33053325

3306-
def Run_str2float()
3326+
def Test_str2float()
33073327
if !has('float')
33083328
CheckFeature float
3309-
endif
3329+
else
33103330
str2float("1.00")->assert_equal(1.00)
33113331
str2float("2e-2")->assert_equal(0.02)
3332+
str2float('')->assert_equal(0.0)
33123333

33133334
CheckDefAndScriptFailure2(['str2float(123)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
33143335
endif
@@ -3320,10 +3341,12 @@ def Test_str2list()
33203341
assert_equal([97], str2list('a'))
33213342
assert_equal([97], str2list('a', 1))
33223343
assert_equal([97], str2list('a', true))
3344+
str2list('')->assert_equal([])
33233345
enddef
33243346

33253347
def Test_str2nr()
33263348
str2nr("1'000'000", 10, true)->assert_equal(1000000)
3349+
str2nr('')->assert_equal(0)
33273350

33283351
CheckDefAndScriptFailure2(['str2nr(123)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
33293352
CheckDefAndScriptFailure2(['str2nr("123", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
@@ -3341,6 +3364,7 @@ def Test_strcharpart()
33413364
CheckDefAndScriptFailure2(['strcharpart("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
33423365
CheckDefAndScriptFailure2(['strcharpart("a", 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3')
33433366
CheckDefAndScriptFailure2(['strcharpart("a", 1, 1, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4')
3367+
strcharpart('', 0)->assert_equal('')
33443368
enddef
33453369

33463370
def Test_strchars()
@@ -3350,27 +3374,37 @@ def Test_strchars()
33503374
assert_equal(3, strchars('abc'))
33513375
assert_equal(3, strchars('abc', 1))
33523376
assert_equal(3, strchars('abc', true))
3377+
strchars('')->assert_equal(0)
33533378
enddef
33543379

33553380
def Test_strdisplaywidth()
33563381
CheckDefAndScriptFailure2(['strdisplaywidth(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
33573382
CheckDefAndScriptFailure2(['strdisplaywidth("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
3383+
strdisplaywidth('')->assert_equal(0)
33583384
enddef
33593385

33603386
def Test_strftime()
3361-
CheckDefAndScriptFailure2(['strftime(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3362-
CheckDefAndScriptFailure2(['strftime("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
3387+
if exists('*strftime')
3388+
CheckDefAndScriptFailure2(['strftime(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3389+
CheckDefAndScriptFailure2(['strftime("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
3390+
strftime('')->assert_equal('')
3391+
endif
33633392
enddef
33643393

33653394
def Test_strgetchar()
33663395
CheckDefAndScriptFailure2(['strgetchar(1, 1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
33673396
CheckDefAndScriptFailure2(['strgetchar("a", "x")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
3397+
strgetchar('', 0)->assert_equal(-1)
3398+
strgetchar('', 1)->assert_equal(-1)
33683399
enddef
33693400

33703401
def Test_stridx()
33713402
CheckDefAndScriptFailure2(['stridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1')
33723403
CheckDefAndScriptFailure2(['stridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2')
33733404
CheckDefAndScriptFailure2(['stridx("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3')
3405+
stridx('', '')->assert_equal(0)
3406+
stridx('', 'a')->assert_equal(-1)
3407+
stridx('a', '')->assert_equal(0)
33743408
enddef
33753409

33763410
def Test_strlen()
@@ -3384,32 +3418,38 @@ def Test_strpart()
33843418
CheckDefAndScriptFailure2(['strpart("a", "b")'], 'E1013: Argument 2: type mismatch, expected number but got string', 'E1210: Number required for argument 2')
33853419
CheckDefAndScriptFailure2(['strpart("a", 1, "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3')
33863420
CheckDefAndScriptFailure2(['strpart("a", 1, 1, 2)'], 'E1013: Argument 4: type mismatch, expected bool but got number', 'E1212: Bool required for argument 4')
3421+
strpart('', 0)->assert_equal('')
33873422
enddef
33883423

33893424
def Test_strptime()
33903425
CheckFunction strptime
3391-
CheckDefAndScriptFailure2(['strptime(10, "2021")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3392-
CheckDefAndScriptFailure2(['strptime("%Y", 2021)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
3393-
# BUG: Directly calling strptime() in this function gives an "E117: Unknown
3394-
# function" error on MS-Windows even with the above CheckFunction call for
3395-
# strptime().
3396-
#assert_true(strptime('%Y', '2021') != 0)
3426+
if exists_compiled('*strptime')
3427+
CheckDefAndScriptFailure2(['strptime(10, "2021")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3428+
CheckDefAndScriptFailure2(['strptime("%Y", 2021)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
3429+
assert_true(strptime('%Y', '2021') != 0)
3430+
assert_true(strptime('%Y', '') == 0)
3431+
endif
33973432
enddef
33983433

33993434
def Test_strridx()
34003435
CheckDefAndScriptFailure2(['strridx([1], "b")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1174: String required for argument 1')
34013436
CheckDefAndScriptFailure2(['strridx("a", {})'], 'E1013: Argument 2: type mismatch, expected string but got dict<unknown>', 'E1174: String required for argument 2')
34023437
CheckDefAndScriptFailure2(['strridx("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3')
3438+
strridx('', '')->assert_equal(0)
3439+
strridx('', 'a')->assert_equal(-1)
3440+
strridx('a', '')->assert_equal(1)
34033441
enddef
34043442

34053443
def Test_strtrans()
34063444
CheckDefAndScriptFailure2(['strtrans(20)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
34073445
assert_equal('abc', strtrans('abc'))
3446+
strtrans('')->assert_equal('')
34083447
enddef
34093448

34103449
def Test_strwidth()
34113450
CheckDefAndScriptFailure2(['strwidth(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
34123451
assert_equal(4, strwidth('abcd'))
3452+
strwidth('')->assert_equal(0)
34133453
enddef
34143454

34153455
def Test_submatch()
@@ -3777,22 +3817,30 @@ enddef
37773817

37783818
def Test_tolower()
37793819
CheckDefAndScriptFailure2(['tolower(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3820+
tolower('')->assert_equal('')
37803821
enddef
37813822

37823823
def Test_toupper()
37833824
CheckDefAndScriptFailure2(['toupper(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
3825+
toupper('')->assert_equal('')
37843826
enddef
37853827

37863828
def Test_tr()
37873829
CheckDefAndScriptFailure2(['tr(1, "a", "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
37883830
CheckDefAndScriptFailure2(['tr("a", 1, "b")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2')
37893831
CheckDefAndScriptFailure2(['tr("a", "a", 1)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3')
3832+
tr('', '', '')->assert_equal('')
3833+
tr('ab', '', '')->assert_equal('ab')
3834+
assert_fails("tr('ab', 'ab', '')", 'E475:')
3835+
assert_fails("tr('ab', '', 'AB')", 'E475:')
37903836
enddef
37913837

37923838
def Test_trim()
37933839
CheckDefAndScriptFailure2(['trim(["a"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1174: String required for argument 1')
37943840
CheckDefAndScriptFailure2(['trim("a", ["b"])'], 'E1013: Argument 2: type mismatch, expected string but got list<string>', 'E1174: String required for argument 2')
37953841
CheckDefAndScriptFailure2(['trim("a", "b", "c")'], 'E1013: Argument 3: type mismatch, expected number but got string', 'E1210: Number required for argument 3')
3842+
trim('')->assert_equal('')
3843+
trim('', '')->assert_equal('')
37963844
enddef
37973845

37983846
def Test_typename()
@@ -3813,6 +3861,7 @@ enddef
38133861
def Test_undofile()
38143862
CheckDefAndScriptFailure2(['undofile(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1')
38153863
assert_equal('.abc.un~', fnamemodify(undofile('abc'), ':t'))
3864+
undofile('')->assert_equal('')
38163865
enddef
38173866

38183867
def Test_uniq()

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,8 @@ static char *(features[]) =
757757

758758
static int included_patches[] =
759759
{ /* Add new patch number below this line */
760+
/**/
761+
3446,
760762
/**/
761763
3445,
762764
/**/

0 commit comments

Comments
 (0)