forked from aniani/vim
		
	patch 8.0.0019
Problem:    Test_command_count is old style.
Solution:   Turn it into a new style test. (Naruhiko Nishino)
            Use more assert functions.
			
			
This commit is contained in:
		| @@ -2028,7 +2028,6 @@ test1 \ | |||||||
| 	test_breakindent \ | 	test_breakindent \ | ||||||
| 	test_changelist \ | 	test_changelist \ | ||||||
| 	test_close_count \ | 	test_close_count \ | ||||||
| 	test_command_count \ |  | ||||||
| 	test_comparators \ | 	test_comparators \ | ||||||
| 	test_erasebackword \ | 	test_erasebackword \ | ||||||
| 	test_eval \ | 	test_eval \ | ||||||
| @@ -2066,6 +2065,7 @@ test_arglist \ | |||||||
| 	test_channel \ | 	test_channel \ | ||||||
| 	test_charsearch \ | 	test_charsearch \ | ||||||
| 	test_cmdline \ | 	test_cmdline \ | ||||||
|  | 	test_command_count \ | ||||||
| 	test_crypt \ | 	test_crypt \ | ||||||
| 	test_cscope \ | 	test_cscope \ | ||||||
| 	test_cursor_func \ | 	test_cursor_func \ | ||||||
|   | |||||||
| @@ -79,7 +79,6 @@ SCRIPTS_ALL = \ | |||||||
| 	test_breakindent.out \ | 	test_breakindent.out \ | ||||||
| 	test_changelist.out \ | 	test_changelist.out \ | ||||||
| 	test_close_count.out \ | 	test_close_count.out \ | ||||||
| 	test_command_count.out \ |  | ||||||
| 	test_comparators.out \ | 	test_comparators.out \ | ||||||
| 	test_erasebackword.out \ | 	test_erasebackword.out \ | ||||||
| 	test_eval.out \ | 	test_eval.out \ | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ | |||||||
|  |  | ||||||
| source test_assign.vim | source test_assign.vim | ||||||
| source test_autocmd.vim | source test_autocmd.vim | ||||||
|  | source test_command_count.vim | ||||||
| source test_cursor_func.vim | source test_cursor_func.vim | ||||||
| source test_delete.vim | source test_delete.vim | ||||||
| source test_execute_func.vim | source test_execute_func.vim | ||||||
|   | |||||||
| @@ -1,5 +1,13 @@ | |||||||
| " Tests for autocommands | " Tests for autocommands | ||||||
|  |  | ||||||
|  | function! s:cleanup_buffers() abort | ||||||
|  |   for bnr in range(1, bufnr('$')) | ||||||
|  |     if bufloaded(bnr) && bufnr('%') != bnr | ||||||
|  |       execute 'bd! ' . bnr | ||||||
|  |     endif | ||||||
|  |   endfor | ||||||
|  | endfunction | ||||||
|  |  | ||||||
| func Test_vim_did_enter() | func Test_vim_did_enter() | ||||||
|   call assert_false(v:vim_did_enter) |   call assert_false(v:vim_did_enter) | ||||||
|  |  | ||||||
| @@ -254,6 +262,9 @@ endfunc | |||||||
| " Tests for autocommands on :close command. | " Tests for autocommands on :close command. | ||||||
| " This used to be in test13. | " This used to be in test13. | ||||||
| func Test_three_windows() | func Test_three_windows() | ||||||
|  |   " Clean up buffers, because in some cases this function fails. | ||||||
|  |   call s:cleanup_buffers() | ||||||
|  |  | ||||||
|   " Write three files and open them, each in a window. |   " Write three files and open them, each in a window. | ||||||
|   " Then go to next window, with autocommand that deletes the previous one. |   " Then go to next window, with autocommand that deletes the previous one. | ||||||
|   " Do this twice, writing the file. |   " Do this twice, writing the file. | ||||||
|   | |||||||
| @@ -1,158 +0,0 @@ | |||||||
| Test for user command counts	    vim: set ft=vim : |  | ||||||
|  |  | ||||||
| STARTTEST |  | ||||||
| :so small.vim |  | ||||||
| :lang C |  | ||||||
| :let g:lines = [] |  | ||||||
| :com -range=% RangeLines :call add(g:lines, 'RangeLines '.<line1>.' '.<line2>) |  | ||||||
| :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '.<line1>.' '.<line2>) |  | ||||||
| :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '.<line1>.' '.<line2>) |  | ||||||
| :com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '.<line1>.' '.<line2>) |  | ||||||
| :com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '.<line1>.' '.<line2>) |  | ||||||
| :com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '.<line1>.' '.<line2>) |  | ||||||
| :com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '.<line1>.' '.<line2>) |  | ||||||
| :com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '.<line1>.' '.<line2>) |  | ||||||
| :com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '.<line1>.' '.<line2>) |  | ||||||
| :com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '.<line1>.' '.<line2>) |  | ||||||
| :com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '.<line1>.' '.<line2>) |  | ||||||
| :set hidden |  | ||||||
| :arga a b c d |  | ||||||
| :argdo echo "loading buffers" |  | ||||||
| :argu 3 |  | ||||||
| :.-,$-RangeArguments |  | ||||||
| :%RangeArguments |  | ||||||
| :RangeArgumentsAll |  | ||||||
| :N |  | ||||||
| :.RangeArguments |  | ||||||
| :split|split|split|split |  | ||||||
| :3wincmd w |  | ||||||
| :.,$RangeWindows |  | ||||||
| :%RangeWindows |  | ||||||
| :RangeWindowsAll |  | ||||||
| :only |  | ||||||
| :blast|bd |  | ||||||
| :.,$RangeLoadedBuffers |  | ||||||
| :%RangeLoadedBuffers |  | ||||||
| :RangeLoadedBuffersAll |  | ||||||
| :.,$RangeBuffers |  | ||||||
| :%RangeBuffers |  | ||||||
| :RangeBuffersAll |  | ||||||
| :tabe|tabe|tabe|tabe |  | ||||||
| :normal 2gt |  | ||||||
| :.,$RangeTabs |  | ||||||
| :%RangeTabs |  | ||||||
| :RangeTabsAll |  | ||||||
| :1tabonly |  | ||||||
| :s/\n/\r\r\r\r\r/ |  | ||||||
| :2ma< |  | ||||||
| :$-ma> |  | ||||||
| :'<,'>RangeLines |  | ||||||
| :com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '.<line1>.' '.<line2>) |  | ||||||
| :'<,'>LocalRangeLines |  | ||||||
| :b1 |  | ||||||
| ENDTEST |  | ||||||
|  |  | ||||||
| STARTTEST |  | ||||||
| :call add(g:lines, '') |  | ||||||
| :%argd |  | ||||||
| :arga a b c d |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :5argu |  | ||||||
| :call add(g:lines, '5argu ' . v:errmsg) |  | ||||||
| :$argu |  | ||||||
| :call add(g:lines, '4argu ' . expand('%:t')) |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :1argu |  | ||||||
| :call add(g:lines, '1argu ' . expand('%:t')) |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :100b |  | ||||||
| :call add(g:lines, '100b ' . v:errmsg) |  | ||||||
| :split|split|split|split |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :0close |  | ||||||
| :call add(g:lines, '0close ' . v:errmsg) |  | ||||||
| :$wincmd w |  | ||||||
| :$close |  | ||||||
| :call add(g:lines, '$close ' . winnr()) |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :$+close |  | ||||||
| :call add(g:lines, '$+close ' . v:errmsg) |  | ||||||
| :$tabe |  | ||||||
| :call add(g:lines, '$tabe ' . tabpagenr()) |  | ||||||
| :let v:errmsg = '' |  | ||||||
| :$+tabe |  | ||||||
| :call add(g:lines, '$+tabe ' . v:errmsg) |  | ||||||
| :only! |  | ||||||
| :e x |  | ||||||
| :0tabm |  | ||||||
| :normal 1gt |  | ||||||
| :call add(g:lines, '0tabm ' . expand('%:t')) |  | ||||||
| :tabonly! |  | ||||||
| :only! |  | ||||||
| :e! test.out |  | ||||||
| :call append(0, g:lines) |  | ||||||
| :unlet g:lines |  | ||||||
| :w|bd |  | ||||||
| :b1 |  | ||||||
| ENDTEST |  | ||||||
|  |  | ||||||
| STARTTEST |  | ||||||
| :let g:lines = [] |  | ||||||
| :func BufStatus() |  | ||||||
| :  call add(g:lines, 'aaa: ' . buflisted(g:buf_aaa) . ' bbb: ' . buflisted(g:buf_bbb) . ' ccc: ' . buflisted(g:buf_ccc)) |  | ||||||
| :endfunc |  | ||||||
| :se nohidden |  | ||||||
| :e aaa |  | ||||||
| :let buf_aaa = bufnr('%') |  | ||||||
| :e bbb |  | ||||||
| :let buf_bbb = bufnr('%') |  | ||||||
| :e ccc |  | ||||||
| :let buf_ccc = bufnr('%') |  | ||||||
| :b1 |  | ||||||
| :call BufStatus() |  | ||||||
| :exe buf_bbb . "," . buf_ccc . "bdelete" |  | ||||||
| :call BufStatus() |  | ||||||
| :exe buf_aaa . "bdelete" |  | ||||||
| :call BufStatus() |  | ||||||
| :e! test.out |  | ||||||
| :call append('$', g:lines) |  | ||||||
| :unlet g:lines |  | ||||||
| :delfunc BufStatus |  | ||||||
| :w|bd |  | ||||||
| :b1 |  | ||||||
| ENDTEST |  | ||||||
|  |  | ||||||
| STARTTEST |  | ||||||
| :se hidden |  | ||||||
| :only! |  | ||||||
| :let g:lines = [] |  | ||||||
| :%argd |  | ||||||
| :arga a b c d e f |  | ||||||
| :3argu |  | ||||||
| :let args = '' |  | ||||||
| :.,$-argdo let args .= ' '.expand('%') |  | ||||||
| :call add(g:lines, 'argdo:' . args) |  | ||||||
| :split|split|split|split |  | ||||||
| :2wincmd w |  | ||||||
| :let windows = '' |  | ||||||
| :.,$-windo let windows .= ' '.winnr() |  | ||||||
| :call add(g:lines, 'windo:'. windows) |  | ||||||
| :b2 |  | ||||||
| :let buffers = '' |  | ||||||
| :.,$-bufdo let buffers .= ' '.bufnr('%') |  | ||||||
| :call add(g:lines, 'bufdo:' . buffers) |  | ||||||
| :3bd |  | ||||||
| :let buffers = '' |  | ||||||
| :3,7bufdo let buffers .= ' '.bufnr('%') |  | ||||||
| :call add(g:lines, 'bufdo:' . buffers) |  | ||||||
| :tabe|tabe|tabe|tabe |  | ||||||
| :normal! 2gt |  | ||||||
| :let tabpages = '' |  | ||||||
| :.,$-tabdo let tabpages .= ' '.tabpagenr() |  | ||||||
| :call add(g:lines, 'tabdo:' . tabpages) |  | ||||||
| :e! test.out |  | ||||||
| :call append('$', g:lines) |  | ||||||
| :w|qa! |  | ||||||
| ENDTEST |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1,38 +0,0 @@ | |||||||
| RangeArguments 2 4 |  | ||||||
| RangeArguments 1 5 |  | ||||||
| RangeArgumentsAll 1 5 |  | ||||||
| RangeArguments 2 2 |  | ||||||
| RangeWindows 3 5 |  | ||||||
| RangeWindows 1 5 |  | ||||||
| RangeWindowsAll 1 5 |  | ||||||
| RangeLoadedBuffers 2 4 |  | ||||||
| RangeLoadedBuffers 1 4 |  | ||||||
| RangeLoadedBuffersAll 1 4 |  | ||||||
| RangeBuffers 2 5 |  | ||||||
| RangeBuffers 1 5 |  | ||||||
| RangeBuffersAll 1 5 |  | ||||||
| RangeTabs 2 5 |  | ||||||
| RangeTabs 1 5 |  | ||||||
| RangeTabsAll 1 5 |  | ||||||
| RangeLines 2 5 |  | ||||||
| LocalRangeLines 2 5 |  | ||||||
|  |  | ||||||
| 5argu E16: Invalid range |  | ||||||
| 4argu d |  | ||||||
| 1argu a |  | ||||||
| 100b E16: Invalid range |  | ||||||
| 0close  |  | ||||||
| $close 3 |  | ||||||
| $+close E16: Invalid range |  | ||||||
| $tabe 2 |  | ||||||
| $+tabe E16: Invalid range |  | ||||||
| 0tabm x |  | ||||||
|  |  | ||||||
| aaa: 1 bbb: 1 ccc: 1 |  | ||||||
| aaa: 1 bbb: 0 ccc: 0 |  | ||||||
| aaa: 0 bbb: 0 ccc: 0 |  | ||||||
| argdo: c d e |  | ||||||
| windo: 2 3 4 |  | ||||||
| bufdo: 2 3 4 5 6 7 8 9 10 15 |  | ||||||
| bufdo: 4 5 6 7 |  | ||||||
| tabdo: 2 3 4 |  | ||||||
							
								
								
									
										191
									
								
								src/testdir/test_command_count.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								src/testdir/test_command_count.vim
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,191 @@ | |||||||
|  | " Test for user command counts. | ||||||
|  |  | ||||||
|  | func Test_command_count_0() | ||||||
|  |   set hidden | ||||||
|  |   set noswapfile | ||||||
|  |  | ||||||
|  |   split DoesNotExistEver | ||||||
|  |   let lastbuf = bufnr('$') | ||||||
|  |   call setline(1, 'asdf') | ||||||
|  |   quit! | ||||||
|  |  | ||||||
|  |   command! -range -addr=loaded_buffers RangeLoadedBuffers :let lines = [<line1>, <line2>] | ||||||
|  |   command! -range=% -addr=loaded_buffers RangeLoadedBuffersAll :let lines = [<line1>, <line2>] | ||||||
|  |   command! -range -addr=buffers RangeBuffers :let lines = [<line1>, <line2>] | ||||||
|  |   command! -range=% -addr=buffers RangeBuffersAll :let lines = [<line1>, <line2>] | ||||||
|  |  | ||||||
|  |   .,$RangeLoadedBuffers | ||||||
|  |   call assert_equal([1, 1], lines) | ||||||
|  |   %RangeLoadedBuffers | ||||||
|  |   call assert_equal([1, 1], lines) | ||||||
|  |   RangeLoadedBuffersAll | ||||||
|  |   call assert_equal([1, 1], lines) | ||||||
|  |   .,$RangeBuffers | ||||||
|  |   call assert_equal([1, lastbuf], lines) | ||||||
|  |   %RangeBuffers | ||||||
|  |   call assert_equal([1, lastbuf], lines) | ||||||
|  |   RangeBuffersAll | ||||||
|  |   call assert_equal([1, lastbuf], lines) | ||||||
|  |  | ||||||
|  |   delcommand RangeLoadedBuffers | ||||||
|  |   delcommand RangeLoadedBuffersAll | ||||||
|  |   delcommand RangeBuffers | ||||||
|  |   delcommand RangeBuffersAll | ||||||
|  |  | ||||||
|  |   set hidden& | ||||||
|  |   set swapfile& | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_command_count_1() | ||||||
|  |   silent! %argd | ||||||
|  |   arga a b c d e | ||||||
|  |   argdo echo "loading buffers" | ||||||
|  |   argu 3 | ||||||
|  |   command! -range -addr=arguments RangeArguments :let lines = [<line1>, <line2>] | ||||||
|  |   command! -range=% -addr=arguments RangeArgumentsAll :let lines = [<line1>, <line2>] | ||||||
|  |   .-,$-RangeArguments | ||||||
|  |   call assert_equal([2, 4], lines) | ||||||
|  |   %RangeArguments | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   RangeArgumentsAll | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   N | ||||||
|  |   .RangeArguments | ||||||
|  |   call assert_equal([2, 2], lines) | ||||||
|  |   delcommand RangeArguments | ||||||
|  |   delcommand RangeArgumentsAll | ||||||
|  |  | ||||||
|  |   split|split|split|split | ||||||
|  |   3wincmd w | ||||||
|  |   command! -range -addr=windows RangeWindows :let lines = [<line1>, <line2>] | ||||||
|  |   .,$RangeWindows | ||||||
|  |   call assert_equal([3, 5], lines) | ||||||
|  |   %RangeWindows | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   delcommand RangeWindows | ||||||
|  |  | ||||||
|  |   command! -range=% -addr=windows RangeWindowsAll :let lines = [<line1>, <line2>] | ||||||
|  |   RangeWindowsAll | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   delcommand RangeWindowsAll | ||||||
|  |   only | ||||||
|  |   blast|bd | ||||||
|  |  | ||||||
|  |   tabe|tabe|tabe|tabe | ||||||
|  |   normal 2gt | ||||||
|  |   command! -range -addr=tabs RangeTabs :let lines = [<line1>, <line2>] | ||||||
|  |   .,$RangeTabs | ||||||
|  |   call assert_equal([2, 5], lines) | ||||||
|  |   %RangeTabs | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   delcommand RangeTabs | ||||||
|  |  | ||||||
|  |   command! -range=% -addr=tabs RangeTabsAll :let lines = [<line1>, <line2>] | ||||||
|  |   RangeTabsAll | ||||||
|  |   call assert_equal([1, 5], lines) | ||||||
|  |   delcommand RangeTabsAll | ||||||
|  |   1tabonly | ||||||
|  |  | ||||||
|  |   s/\n/\r\r\r\r\r/ | ||||||
|  |   2ma< | ||||||
|  |   $-ma> | ||||||
|  |   command! -range=% RangeLines :let lines = [<line1>, <line2>] | ||||||
|  |   '<,'>RangeLines | ||||||
|  |   call assert_equal([2, 5], lines) | ||||||
|  |   delcommand RangeLines | ||||||
|  |  | ||||||
|  |   command! -range=% -buffer LocalRangeLines :let lines = [<line1>, <line2>] | ||||||
|  |   '<,'>LocalRangeLines | ||||||
|  |   call assert_equal([2, 5], lines) | ||||||
|  |   delcommand LocalRangeLines | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_command_count_2() | ||||||
|  |   silent! %argd | ||||||
|  |   arga a b c d | ||||||
|  |   call assert_fails('5argu', 'E16:') | ||||||
|  |  | ||||||
|  |   $argu | ||||||
|  |   call assert_equal('d', expand('%:t')) | ||||||
|  |  | ||||||
|  |   1argu | ||||||
|  |   call assert_equal('a', expand('%:t')) | ||||||
|  |  | ||||||
|  |   call assert_fails('300b', 'E16:') | ||||||
|  |  | ||||||
|  |   split|split|split|split | ||||||
|  |   0close | ||||||
|  |  | ||||||
|  |   $wincmd w | ||||||
|  |   $close | ||||||
|  |   call assert_equal(3, winnr()) | ||||||
|  |  | ||||||
|  |   call assert_fails('$+close', 'E16:') | ||||||
|  |  | ||||||
|  |   $tabe | ||||||
|  |   call assert_equal(2, tabpagenr()) | ||||||
|  |  | ||||||
|  |   call assert_fails('$+tabe', 'E16:') | ||||||
|  |  | ||||||
|  |   only! | ||||||
|  |   e x | ||||||
|  |   0tabm | ||||||
|  |   normal 1gt | ||||||
|  |   call assert_equal('x', expand('%:t')) | ||||||
|  |  | ||||||
|  |   tabonly! | ||||||
|  |   only! | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_command_count_3() | ||||||
|  |   se nohidden | ||||||
|  |   e aaa | ||||||
|  |   let buf_aaa = bufnr('%') | ||||||
|  |   e bbb | ||||||
|  |   let buf_bbb = bufnr('%') | ||||||
|  |   e ccc | ||||||
|  |   let buf_ccc = bufnr('%') | ||||||
|  |   buf 1 | ||||||
|  |   call assert_equal([1, 1, 1], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) | ||||||
|  |   exe buf_bbb . "," . buf_ccc . "bdelete" | ||||||
|  |   call assert_equal([1, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) | ||||||
|  |   exe buf_aaa . "bdelete" | ||||||
|  |   call assert_equal([0, 0, 0], [buflisted(buf_aaa), buflisted(buf_bbb), buflisted(buf_ccc)]) | ||||||
|  | endfunc | ||||||
|  |  | ||||||
|  | func Test_command_count_4() | ||||||
|  |   %argd | ||||||
|  |   let bufnr = bufnr('$') + 1 | ||||||
|  |   arga aa bb cc dd ee ff | ||||||
|  |   3argu | ||||||
|  |   let args = [] | ||||||
|  |   .,$-argdo call add(args, expand('%')) | ||||||
|  |   call assert_equal(['cc', 'dd', 'ee'], args) | ||||||
|  |  | ||||||
|  |   " create windows to get 5 | ||||||
|  |   split|split|split|split | ||||||
|  |   2wincmd w | ||||||
|  |   let windows = [] | ||||||
|  |   .,$-windo call add(windows, winnr()) | ||||||
|  |   call assert_equal([2, 3, 4], windows) | ||||||
|  |   only! | ||||||
|  |  | ||||||
|  |   exe bufnr . 'buf' | ||||||
|  |   let buffers = [] | ||||||
|  |   .,$-bufdo call add(buffers, bufnr('%')) | ||||||
|  |   call assert_equal([bufnr, bufnr + 1, bufnr + 2, bufnr + 3, bufnr + 4], buffers) | ||||||
|  |  | ||||||
|  |   exe (bufnr + 3) . 'bdel' | ||||||
|  |   let buffers = [] | ||||||
|  |   exe (bufnr + 2) . ',' . (bufnr + 5) . "bufdo call add(buffers, bufnr('%'))" | ||||||
|  |   call assert_equal([bufnr + 2, bufnr + 4, bufnr +  5], buffers) | ||||||
|  |  | ||||||
|  |   " create tabpages to get 5 | ||||||
|  |   tabe|tabe|tabe|tabe | ||||||
|  |   normal! 2gt | ||||||
|  |   let tabpages = [] | ||||||
|  |   .,$-tabdo call add(tabpages, tabpagenr()) | ||||||
|  |   call assert_equal([2, 3, 4], tabpages) | ||||||
|  |   tabonly! | ||||||
|  |   bwipe! | ||||||
|  | endfunc | ||||||
| @@ -764,6 +764,8 @@ static char *(features[]) = | |||||||
|  |  | ||||||
| static int included_patches[] = | static int included_patches[] = | ||||||
| {   /* Add new patch number below this line */ | {   /* Add new patch number below this line */ | ||||||
|  | /**/ | ||||||
|  |     19, | ||||||
| /**/ | /**/ | ||||||
|     18, |     18, | ||||||
| /**/ | /**/ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user